2012-08-24 186 views
7

我一直在努力學習依賴注入,並已閱讀並試圖代碼類似這樣的小依賴注入容器:http://fabien.potencier.org/article/12/do-you-need-a-dependency-injection-container依賴注入容器 - 工廠模式

的一件事是困惑我是這樣的:

不是一個依賴注入容器只是工廠模式的榮耀實現?

如果是這樣,爲什麼不把它叫做那個,爲什麼只需要一個奇特的術語來混淆事項。

如果沒有,有人可以解釋我在這裏失蹤了嗎?

+1

[依賴注入VS工廠模式(HTTP的可能重複。 com/questions/557742/dependency-injection-vs-factory-pattern) – podiluska

+1

'依賴注入'是一個比'依賴注入容器'更廣泛的術語。很容易看出DI與工廠的區別,不容易看出DI Container與工廠之間的區別。所以我不認爲這是一個重複的問題。 – Russ

回答

7

您必須單獨依賴注入和控制反轉。

依賴注入是您將依賴關係注入到類中,而不是讓類本身負責其依賴關係。

控制反轉是相當於某物控制了對象並且它是一生。在這種情況下,由容器決定何時以及如何創建和處理對象。

工廠模式都是關於在每次調用時創建一個新對象。該模式本身並沒有說明應該如何創建依賴關係。

這就是爲什麼您可以配置不同的生命週期並使用子容器來控制有限生命週期的對象。

我已經寫在這裏的文章:http://www.codeproject.com/Articles/386164/Get-injected-into-the-world-of-inverted-dependenci

或者,如果你想看到更多的例子://計算器:http://www.codeproject.com/Articles/440665/Having-fun-with-Griffin-Container