5

依存関係の注入はいつ使用しますか?依存性注入を使用することの圧倒的な利点はありますか?

4

1 に答える 1

5

ファウラーは、制御の反転と依存性注入パターンの見出しで、この2つをよく比較しています。彼の結論の中で、彼は言います

依存性注入は、ServiceLocatorの便利な代替手段です。アプリケーションクラスを構築する場合、この2つはほぼ同等ですが、Service Locatorの動作はより単純であるため、わずかに優れていると思います。ただし、複数のアプリケーションで使用するクラスを構築する場合は、依存性注入の方が適しています。

あなたはここでより多くの視点と比較を見つけることができます

DIの場合:

  • コンポーネントが持つ依存関係を簡単に判別できます-コンストラクターを見てください。
  • コンポーネントはServiceLocatorに依存しないため、コンポーネントが別のフレームワークで使用されていても問題はありません。
  • DIを使用するとテストが容易になる場合がありますが、優れたService Locatorメカニズムにより、スタブ化も同様に実行可能になります。

DIに対して:

  • デバッグと理解が難しい。
  • コンポーネントは、一度構成されると、インジェクターに追加のサービスを要求できません。
于 2012-08-30T21:50:03.977 に答える