Dependency_Injection

概要

メリット

  • 疎結合になる
  • 再利用しやすい
  • テストしやすい

具体例

クラスAがクラスBに依存している状態

graph LR
  classA --> classB
  • テストが実装しにくい(ことがある)
    • classBが完成していないとクラスAのテストができない
  • 再利用しにくい
    • 例でいうと、classAと似たようなclassCを作る時に、classBのようなクラスをさらに実装しなければならなくなる

DIする

graph LR
  classA --> interfaceB --> classB
  • テストしやすい
    • インターフェースがモックになってくれる
  • 再利用しやすい
    • オブジェクトの生成方法や依存関係を簡単に変更できる

参照