2014-10-08 61 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