1
A
回答
2
隨着工廠(或任何其他創建模式),調用者必須知道如何獲取對象,並且必須在消費之前「明確」地請求它。使用DI時
Car car = CarFactory.getCarByModel(LUXURY);
然而,有責任傳遞所需的對象委託給它知道如何創建對象(通過讀取已定義的配置),並將其提供給一些外部(容器居多)實體來電者默默地。
Car car = getCar();
void setCar(Car car){..} // container sets the car fromoutside
0
同樣的目標與兩個模式實現的,它只是你所擁有,而與DI您使用現有的DI框架來爲你做這項工作寫代碼的工廠設計模式,簡單地做配置的依賴關係。有了工廠模式,你必須爲你編寫工廠類。
+0
依賴注入是一種方式設計課程並且不需要容器。容器恰好是處理構建對象圖的一種便捷方式。 – ColinD
2
工廠模式通常用於重複創建具有可能複雜實例化邏輯的對象的實例。這樣,您的類知道工廠和請求實例的。
依賴注入更進一步到完全抽象掉的實例化邏輯,只要你的等級有關。你的代碼需要關心的是聲明他們需要的依賴關係,而不會打擾他們來自哪裏。
對於一個很好的深入指導,請參閱Inversion of Control Containers and the Dependency Injection pattern。
相關問題
- 1. 工廠模式在依賴注入
- 2. PHP工廠模式依賴注入
- 3. 依賴注入容器 - 工廠模式
- 4. 依賴注入和/或工廠模式
- 5. 模型工廠內的依賴注入
- 6. 將依賴注入與工廠模式混合很好嗎?
- 7. 依賴注入與工廠
- 8. 依賴注入和工廠
- 9. 依賴注入和工廠
- 10. 依賴注入設計模式
- 11. 處理程序工廠的依賴注入設計
- 12. 在依賴注入中使用策略和工廠模式
- 13. 在Spring中使用依賴注入來替換工廠模式
- 14. C# - 使用依賴注入(ninject)而不是工廠模式
- 15. 工廠模式或依賴注入未來實現
- 16. WCF依賴注入和抽象工廠
- 17. 依賴注入功能與工廠(AngularJS)
- 18. Grails依賴注入和工廠
- 19. Zend2依賴注入工廠服務
- 20. 通用接口依賴注入工廠
- 21. ASP.NET核心依賴注入:工廠和實例之間的區別?
- 22. 設計模式名稱:是工廠嗎?
- 23. 工廠設計模式(需要批判)
- 24. 依賴注入特定於面向對象的模式嗎?
- 25. 我可以使用工廠來實現依賴注入嗎
- 26. 注入工廠隱藏依賴關係嗎?
- 27. 工廠方法和抽象工廠設計模式有什麼區別?
- 28. 需要工廠和依賴注入幫助
- 29. IOC設計模式是否獨立於工廠設計模式?
- 30. 工廠和管道設計模式有什麼區別?
依賴注入的語義因每個框架而異,不能很容易地演示,儘管它基本上是爲你定義實例的代碼。使用搜索引擎很容易找到[工廠模式](http://en.wikipedia.org/wiki/Factory_method_pattern)代碼示例。此外,許多** DI **框架嚴重依賴於創建模式,如**工廠模式**。 –
[DI和工廠模式之間有什麼區別?]的可能的重複(http://stackoverflow.com/questions/2598659/whats-the-difference-between-di-and-factory-patterns) –