C# Difference between factory pattern and IoC
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
Dependency Injection vs Factory Pattern
有人能(用简单的例子)解释工厂模式和控制模式反转之间的区别吗?最好使用.net2.0
工厂模式:需要引用服务的对象应该了解创建服务的工厂:
1 2 3 4 5 6 7 8 9 | public class BLLObject { public IDal DalInstance { get; set; } public BLLObject() { DalInstance = DalFactory.CreateSqlServerDal(); } } |
IOC模式(或依赖注入):
对象只需要使用IOC模式的任何方面(构造函数、setter或接口…等)集装箱将尽力满足这一需求:
1 2 3 4 5 6 7 8 9 | public class BLLObject { public IDal DalInstance { get; set; } public BLLObject(IDal _dalInstance) { DalInstance = _dalInstance; } } |
这意味着在工厂模式中,对象决定使用哪种创建方法(通过选择特定的具体工厂),而在IOC模式中,则取决于容器的选择。
当然,这不是唯一的尊重,但这正是我目前的想法。如果我错了,请纠正我?
工厂模式是关于获取对类型的引用,因此在代码中的某个地方,您将调用工厂来解决某个问题。
控制模式的反转意味着您通常会使用IOC容器来解析您的依赖关系。这可能与工厂的方式类似,或者更典型地,您将使用依赖注入将依赖关系解析为构造函数或设置器。