技术资料:
http://msdn.microsoft.com/en-us/magazine/cc163739.aspx
学习笔记:
1.背景
当在一个类A中创建另一个类C的实例时,我们一般需要一个初始化过程,当另一个类B创建C的实例时,也需要同样的初始化逻辑,为了减少或避免这样的重复工作,我们引入依赖注入(Dependency Injection)的思想。
2. DI(Dependency Injection)容器
容器提供一个抽象层以用来存放各种对象(object)或组件(component)。DI容器通过一个通用工厂类创建和初始化我们需要的各种类的实例,这些实例的初始化信息会配置在实例中,实例的初始化逻辑和各个类的依赖关系会被封装在容器中,这样我们客户端代码可以减少依赖耦合(Dependency Coupling)并且初始化逻辑会被广泛地重用。
2.1 工厂模式Factory Pattern)
抽象工厂模式:用于在不指定具体对象的情况下创建或实例化一组相关的对象,通过封装实例化或初始化逻辑,我们可以继续控制这些对象的状态和依赖关系。
工厂方法模式:工厂方法通常是一个static方法用于返回一个实例。
我们通常所讲的工厂模式包括这两种模式。
2.2 用工厂模式来实现DI (DI Implementation using Factories)