2012-04-23 39 views
0

我已經閱讀了關於IOC/DI的依賴注入。它說創建我們希望注入的每個類的接口。它不違反接口的定義(實現我們想要在類中執行行爲的地方)。任何幫助將不勝感激。謝謝。IOC/DI voilates接口定義

+3

你能舉出一個例子,以便我們更好地理解你的觀點 – 2012-04-23 05:25:47

+0

我不確定你會在哪裏閱讀「創建每個類的接口」,你的意思是爲你希望注入的類創建接口? – Dimitar 2012-04-23 05:32:23

+0

是的。它非常明顯,如果我將構建一個類,然後在某個地方創建它的對象。 – ethicallogics 2012-04-23 05:35:30

回答

2

我想你混淆的主要觀點是,在DI/IoC的情況下,我們沒有一個我們要注入,我們有一個服務我們要注入。假設我有一個Logger類。這不是我想要注入的Logger類本身,它是由​​接口描述的一組記錄服務。如果我沒有使用DI或IoC,我會在每個課程中有一個地方,我會去ILogger _logger = new Logger()或,這兩個地方都將我的代碼耦合到​​接口的特定實例。但是在DI/IoC中,我將這一步留給了框架,並且不用擔心業務邏輯類中的具體實現。

1

它不違反接口的定義(實現我們想在類中強制執行的行爲)嗎?

不,它不。

您正在創建接口的事實意味着您正在定義行爲。你是否打算使用DI來實現你的實現並不是那麼重要。