2014-01-22 71 views
0

我有一個班級依賴於另一個班級。相反,實例化依賴類,我要求它被傳入在唯一的構造函數。這是否有效地注入了依賴關係?依賴注入 - 這是IT嗎?

很困惑!

+0

你甚至看過[依賴注入](http://stackoverflow.com/tags/dependency-injection/info)標籤嗎? – Steven

回答

1

某種意義上是的。 Maybe this will help you.

從其他堆棧溢出響應報價:

我迄今發現的最好的定義是一個由詹姆斯岸:

"Dependency Injection" is a 25-dollar term for a 5-cent concept. [...] Dependency injection means giving an object its instance 

變量。 [...]。

有一篇Martin Fowler的文章可能也有用。

+0

唉,我想我必須多讀150次。謝謝! – user2919960

1

你正走在正確的道路上。一個好的開始。 Martin Fowler在它上面有一個不錯的article

但關鍵在於尋找我們這樣做的基本原因。基本上我們必須將對象的配置與它的使用分開。那麼它會根據業務規則爲您提供更改的靈活性。

例如,如果您有一個Employee類和Employee類有一個CalculateBonus方法,並且該方法使用BonusCalculator類來計算獎金。如果公司類使用Employee.CalculateBonus進行獎金計算,則公司類負責啓動BonusCalculator類並通過方法,屬性或構造函數傳遞給Employee類。

支付日,請假等來自Employ類和BonusCalculator是Employ類的外部,因此我們將BonusCalculator責任的初始化委託給調用類。

這種方式明天BonusCalculator的類型改變它不會影響員工類。

希望這有助於你更清楚地理解這個概念。