15
Dependency InjectionとService Locatorのパターンの違いは何ですか?
どちらのパターンも、制御の反転の原則の実装のように見えます。つまり、オブジェクトは依存関係の構築方法を知らないはずです。 Dependency Injection(DI)は、コンストラクターまたはセッターを使用して依存関係を「注入」するようです。 コンストラクターインジェクションの使用例: //Foo Needs an IBar public class Foo { private IBar bar; public Foo(IBar bar) { this.bar = bar; } //... } Service Locatorは「コンテナ」を使用しているようです。これは依存関係を結び付け、fooにバーを提供します。 サービスロケーターの使用例: //Foo Needs an IBar public class Foo { private IBar bar; public Foo() { this.bar = Container.Get<IBar>(); } //... } 私たちの依存関係は単なるオブジェクトそのものなので、これらの依存関係には依存関係があり、さらに多くの依存関係があり、以下同様です。このようにして、Inversion of …