依存性逆転の原則
依存性逆転の原則の適用はアダプターパターンの一例と見ることもできる。例えば、上位レベルクラスが自身が依存する抽象への固有のアダプターインターフェースを定義するような場合がそれに当たる。アダプティーの実装はまたアダプターインターフェスに依存しますが(もちろん、このインターフェースを実装しているので)独自の下位レベルモジュール内のコードを用いて実装を行うこともできる。上位レベルモジュールは、アダプティーとその下位レベルモジュールによって実装されたインターフェースへのポリモーフィックな関数を呼び出すことによってアダプターインターフェースを介して間接的に下位レベルモジュールを利用するため、上位レベルモジュールが下位レベルモジュールに依存するといったことはない。
Plugin, Service Locator, or Dependency Injection などの様々なパターンは上位レベルコンポーネントに対する選択された下位レベルコンポーネントの "run-time provisioning" を容易にする目的で導入される。