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) –