C#工厂模式和IoC之间的差异

Emi*_*nem 13 c# design-patterns factory inversion-of-control

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

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

Nou*_*uny 16

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

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

    public BLLObject()
    {
        DalInstance = DalFactory.CreateSqlServerDal();
    }
}
Run Code Online (Sandbox Code Playgroud)

Ioc模式(或依赖注入):

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

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

    public BLLObject(IDal _dalInstance)
    {
        DalInstance = _dalInstance;
    }
}
Run Code Online (Sandbox Code Playgroud)

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

当然这不是唯一的尊重,但这是我暂时想到的.如果我错了,请纠正我?