我目前正在使用服務定位器(構造函數)依賴注入(DI)重構我的基於Zend Framework的PHP庫。我覺得它提高了我的代碼,但我不確定是否應該注入所有依賴項。服務定位器似乎更容易用於很多且不具體的依賴項。我有我仍然使用服務定位器訪問以下依賴項:依賴注入:我應該注入一切還是爲某些對象使用服務定位器?
- 一個Zend_Translate對象(我需要翻譯消息無處不在)。
- 甲從Zend_Locale對象(存儲當前語言)
- Zend_Config對象(很多事情是由ini文件配置)
- 實例的工具類的(對數組和字符串處理)
如果我注入這些依賴關係,他們會混亂我的構造函數,並分散特定的依賴關係。對於測試,我可以在運行測試之前在服務定位器中設置這些依賴關係。我的實用主義者說我做得很好,但純粹主義者說我應該一路走下去。
你會推薦爲DI這些類型的對象或不是?
無法回答。你顯然知道有利弊。你有意識地做出決定。 – Gordon 2012-03-15 09:47:44
嗯,問題是:你會推薦DI嗎?所以問題很清楚。 – markus 2012-03-15 09:53:49
有很少的問題我upvote和投票結束。這是一個很好的問題,但這似乎取決於你自己決定。這是你的申請,你知道這個問題的優點和缺點。 – 2012-03-15 09:57:28