这两种模式似乎都像执行控制转移的原则。 这就是说,物体不应知道如何建造其附属地。
依赖性注射(DI)似乎使用一种构造或套体来“注射”其依赖性。
www.un.org/Depts/DGACM/index_spanish.htm 使用对应器注射的实例:
//Foo Needs an IBar
public class Foo
{
private IBar bar;
public Foo(IBar bar)
{
this.bar = bar;
}
//...
}
服务定位器似乎使用“集装箱”,连接其附属设施,并给它带来 bar。
www.un.org/Depts/DGACM/index_spanish.htm 使用服务定位器的实例:
//Foo Needs an IBar
public class Foo
{
private IBar bar;
public Foo()
{
this.bar = Container.Get<IBar>();
}
//...
}
由于我们的属地只是自己所为,这些属地更依赖,因此依此等等。 因此,控制集装箱(或DI集装箱)的转移产生。 实例:Cas 温莎、Ninject、结构图、春等
但是,一个国际奥委会/DI集装箱像一个服务定位器一样,看实际上。 把它称作DI集装箱是坏名吗? 国际奥委会/DI集装箱是否只是另一个 类型 的服务定位器? 我们主要在拥有许多属地时使用DI集装箱,这是否是微妙的?