2013-08-20 61 views
-1

我是Unity/Dependency Injection概念的新手。Unity,依賴注入的目的

我的理解是,你使用DI來避免緊密耦合的類結構,但我正在努力看到它的好處。

我在此鏈接http://www.refactorthis.net/post/2012/10/25/Dependency-Injection-and-Inversion-of-Control-Ioc-With-the-Microsoft-Unity-Container.aspx上關注了「Unity容器」部分,但我不知道爲什麼這是「更好」 - 它引入了更多的代碼,而且仍然在LoggingModule.cs中,我仍然必須有這一行代碼:

_iocContainer.RegisterType(typeof(ILogger), typeof(DBLogger)); 

含義仍然存在依賴關係,但我已將其移至一個僻靜的位置。我仍然必須告訴Unity我想使用哪個類

這個問題可能會被標記爲非建設性的,但我希望被告知好處以及如何正確使用Unity/DI。

感謝, 安德魯

+0

它是IOC容器。它與你對DI的理解應該沒有任何關係,除了它只會幫助「佈線」你的接口和對象以解決注入問題。看到這個比喻爲DI http://stackoverflow.com/questions/1638919/how-to-explain-dependency-injection-to-a-5-year-old – Fendy

+0

開始[這裏](http://stackoverflow.com/標籤/依賴注入/信息)瞭解更多關於依賴注入。 – Steven

回答

1

的好處是,你的服務現在依賴於抽象(​​)和抽象的分辨率是容器的責任。此外,您的依賴關係的聲明以及使用哪些結核以及他們的生活時間集中在Composition Root(註冊容器中的依賴關係的地方)中。

我建議你閱讀一本關於依賴注入的好書,那裏有好幾本。

+0

你建議哪一個,我不知道其他人Mark。Seeman的.Net中的依賴注入 –

+1

@IlyaChernomordik這是一本很好的書。這裏是另一個:http://www.manning.com/prasanna/ – onof