Dependency_Injection
概要
メリット
- 疎結合になる
- 再利用しやすい
- テストしやすい
具体例
クラスAがクラスBに依存している状態
graph LR
classA --> classB
- テストが実装しにくい(ことがある)
- classBが完成していないとクラスAのテストができない
- 再利用しにくい
- 例でいうと、classAと似たようなclassCを作る時に、classBのようなクラスをさらに実装しなければならなくなる
DIする
graph LR
classA --> interfaceB --> classB
- テストしやすい
- インターフェースがモックになってくれる
- 再利用しやすい
- オブジェクトの生成方法や依存関係を簡単に変更できる