C#工厂模式和IoC之间的区别

可能重复:
依赖注入vs工厂模式

有人可以解释(用简单的例子)工厂模式和控制反转模式之间的区别。 最好使用.NET2.0


工厂模式:需要引用服务的对象,应该知道创建服务的工厂:

public class BLLObject 
{
    public IDal DalInstance { get; set; }

    public BLLObject()
    {
        DalInstance = DalFactory.CreateSqlServerDal();
    }
}

Ioc模式(或依赖注入):

该对象只需要使用Ioc模式的任何方面(构造器,设置器或接口等)来声明它对服务的需要,并且容器将尝试满足这种需求:

public class BLLObject 
{
    public IDal DalInstance { get; set; }

    public BLLObject(IDal _dalInstance)
    {
        DalInstance = _dalInstance;
    }
}

这意味着在工厂模式中,对象决定使用哪种创建方法(通过选择特定的混凝土工厂),但是在Ioc模式中,由容器选择。

当然这不是唯一的顺从,但这是我目前的想法。 请纠正我,如果我错了?


工厂模式是关于获取对某个类型的引用,因此在代码中的某处您将调用工厂来解决某个问题。

控制模式的反转意味着您通常会使用Ioc容器来为您解析依赖关系。 这可能与工厂类似,或者更典型的是使用依赖注入来解析构造函数或设置器中的依赖关系。

链接地址: http://www.djcxy.com/p/77747.html

上一篇: C# Difference between factory pattern and IoC

下一篇: Handling read/write udp connection in Go