コンテンツへスキップ
uencoder

Dependency Injection

依存性注入は、依存オブジェクトの生成と結合を外部コンテナへ移し、コンポーネントは依存をコンストラクタ・プロパティ・インターフェース経由で受け取る。呼び出し側が疎結合になる。

目的

モジュールの結合を下げ、テスト容易性と設定可能性を高める。SOLID の DIP の実装である。

メカニズム

コンストラクタ注入はコンストラクタが依存を受け取る。プロパティ注入はセッターで代入する。インターフェース注入は専用インターフェースを実装して受け取る。コンテナ(Spring など DI フレームワーク)が設定に従って注入する。制御の反転(IoC)が中核の考え方である。

ユースケース

  • 疎結合なデザイン
  • 単体テスト
  • フレームワーク設計

関連用語

References