當開始使用新應用程序時,您寧願只使用現有的依賴框架並冒着可能的缺點,或者您會選擇自己編寫完全適應性強的以及爲什麼?使用依賴注入框架還是編寫自己的?
回答
IMO,我們的工作是解決我們客戶的問題,而不是編寫依賴注入(或日誌記錄或ORM等)框架。當存在一個合適的框架時,在我看來,你應該總是使用這個框架。
要補充一點,如果該框架是開源的,那麼沒有理由不使用它,因爲您可以修復任何可能的缺點。
我認爲我們經常失去我們的目標網站。作爲程序員,我們傾向於關注有趣的問題(例如編寫依賴注入框架)並拖延無聊的問題(爲客戶編寫另一個CRUD應用程序):D
我認爲DI框架是那裏現在是相當穩固的(至少對於.Net)......爲什麼要花所有時間到re-invent the wheel?
我當然會使用其中一種可用的解決方案。雖然它開始很簡單,但有一些功能(如各種代理功能)在全功能的DI框架中絕對不是簡單的。也許你還想要一些AOP?
但是任何體面的DI框架對你寫代碼的方式應該沒什麼影響,所以有可能爭辯說它對你的代碼沒有太大影響。
這對付款的人來說可能很重要。在你的情況下,我會得到一個可用的源代碼的DI框架,並知道來源,而不是寫你自己的。
如果我想要代理生成器和AOP,我會使用Spring。完成。 8)(但你和我一樣知道。) – duffymo 2009-01-27 20:30:17
最初做一個DI框架似乎不是什麼大事,但如果你看看Castle和Spring.NET這樣的框架,我可以想出更好的方式來花時間。除非你需要特別的東西,否則我會採用其中一種可用的框架並利用其他框架的工作。
選項3:不要使用依賴注入(尚)。
您剛開始一個新項目。你真的需要一個DI框架嗎?
開始開發項目,您可能會看到一些有問題的依賴關係。一旦它們開始出現,您可以評估現有的DI框架並確定哪些框架適合。
誰知道,你可能會發現你根本不需要DI框架。
即使Martin Fowler的說:
控制反轉是框架的共同特徵,但它的東西,是有代價的。當您嘗試調試時,它往往難以理解並導致問題。所以總的來說,我寧願避免它,除非我需要它。這並不是說這是一件壞事,只是我認爲它需要通過更直接的選擇來證明自己的合理性。
http://martinfowler.com/articles/injection.html
如果我是你,我會避免使用任何依賴注入,直到你絕對不能沒有它度日。
請記住,在大多數情況下,YAGNI。
DI框架一直在不斷髮展,它們還具有其他功能,例如使您的代碼更容易測試。當項目發展時,編寫自己的代碼會更加容易出錯並且更加複雜。
如果你需要DI並選擇一個有良好的支持,我會說他們使用它們。
你可以編寫一個依賴注入位的包裝器,所以如果你想在以後切換DI框架,你不需要擔心庫依賴或者任何地方改變代碼。例如,不是直接調用container.Resolve,而是寫一個爲您調用container.Resolve的工廠類,並且只調用工廠類。
- 1. 我應該使用RoboGuice還是其他依賴注入框架?
- 2. 你更喜歡用框架編寫PHP還是自己編寫?
- 3. 我應該使用框架還是編寫自己的MVC?
- 4. C#依賴注入框架
- 5. 依賴注入 - 注入容器還是個人依賴?
- 6. iPhone的依賴注入框架
- 7. 播放框架依賴注入錯誤
- 8. 依賴注入玩框架2.5模塊
- 9. 播放框架依賴注入
- 10. Vaadin和依賴注入框架
- 11. 基礎依賴注入框架
- 12. 依賴注入Spring框架 - 工作
- 13. 什麼依賴注入框架與WebForms
- 14. 實體框架和依賴注入
- 15. 使用依賴注入來注入依賴注入器
- 16. 使用依賴注入框架的良好開源項目?
- 17. 使用Spring作爲2.4.x的依賴注入框架?
- 18. 用途依賴注入的構架
- 19. 哪些編程語言需要依賴注入框架?
- 20. 是否有PHP4的依賴注入框架?
- 21. 你使用哪個.NET依賴注入框架?
- 22. 玩框架java依賴項注入 - 何時使用singletons
- 23. ASP.Net核心使用什麼依賴注入框架?
- 24. CSLA應該與依賴注入框架一起使用嗎?
- 25. ASP Classic有自己的安全框架還是使用IIS?
- 26. linq2sql使用依賴注入?
- 27. 使用依賴注入
- 28. 編寫你自己的JavaScript和使用Yii PHP框架?
- 29. IoC Unity:爲依賴注入註冊實體框架ObjectContext
- 30. 示例使用情況,使用依賴注入使用Play框架
+1提拖延無聊的東西。我總是努力找藉口去寫一些很酷的代碼大教堂,以避免寫出無聊的必要的東西。 – Phil 2010-03-05 03:36:14