2014-10-08 59 views
2

家伙什么是依赖查找和Ioc的

据我所知之间的关系,依赖注入是Ioc的

的实现,但我不清楚依赖查找之间的关系&的Ioc

,是依赖查找也是Ioc的实现。

任何人都可以帮忙吗?谢谢!

+0

没有。依赖注入不是IoC的实现。控制反转是[框架的定义特征](http://martinfowler.com/bliki/InversionOfControl.html),并允许框架运行用户代码。然而,DI可以在有或没有框架的情况下使用。依赖注入通常也被视为依赖倒置原则的特定形式,但即使这样做也是不正确的,因为在违反依赖倒置原则的情况下应用依赖注入很容易。但他们当然都有关系。 – Steven 2014-10-08 10:14:00

+0

来自matin fowler的文章,依赖注入只是Ioc的另一个名字,他在本文中定义了依赖注入,对吗?[控制容器的反转和依赖注入模式](http://martinfowler.com/articles/injection .html) – 2014-10-09 07:22:42

+0

来自[本文来自Martin Fowler](http://martinfowler.com/bliki/InversionOfControl.html)“控制反转被视为框架的一个决定性特征。” – Steven 2014-10-09 08:36:48

回答

3

我不是春季专家,但我的£0.02。

依赖注入是提供依赖关系的外化。

依赖查找是提供依赖的集中化。

使用DI,某些东西所具有的依赖性可以通过别的东西提供给对象,理想情况是在构建对象时。这可能涉及或不涉及框架。

依赖查找是当对象本身尝试使用某种通用服务创建它所需的依赖关系时。在春天,我相信这是有效地向Spring询问它需要的对象类型以及容器在那里解析对象类型然后(ref)。

这实际上是ServiceLocator (anti-)模式(more details)。虽然not everyone确信它的反模式,但是你应该努力在所有情况下使用DI,并且不应该使用依赖查找。

+0

是依赖查找与服务定位器一样吗? – 2014-10-09 08:29:03

+2

@jasonzhong在春天的情况下,基于我的研究似乎是 – 2014-10-09 08:30:30