DIはデザインパターンの一つであるDependency Injection(依存関係注入)の略として使われることが多く
あるオブジェクトに必要な他のオブジェクトへの参照を外部から与えることで
オブジェクト同士が密になることを防ぎ
テストのしやすさや変更のしやすさなどを保つことができると言われています。
しかし
このDIを徹底すると
例えば1つ依存関係を追加するだけで
といったことが起きてしまう可能性もあります。
こういった問題を解決する方法の1つに
Composition Root
という考えがあります。
この考えを導入することで
などの効果があります。
さらに
もう1つのDIであるDependency Inversion(依存関係逆転の原則)や
その他のデザインパターンも併せて活用することで
なども
個々のオブジェクトから分離させることができます。
普段とはちょっと違った考え方や手法かもしれませんが
新しい世界に触れることで
より良い設計や実装方法を考える上での何かのヒントになれば幸いです。