意图
定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method 使一个类的实例化延迟到其子类。
适用性
当一个类不知道它所必须创建的对象的类的时候。
当一个类希望由它的子类来指定它所创建的对象的时候。
当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候。
结构
从图上可以看出,工厂模式和简单工厂模式的区别是将工厂也进行了抽象,定义了工厂的接口,每个产品的生成由专门的工厂负责,主要有三个元素,1、client(调用工厂);2、工厂类(生成者);3、产品类
代码示例
|
|
明显特征
1、工厂类和简单工厂类相比,明显的特征就是创建产品不是一个工厂,而是多个工厂,相当于分工更加的明确
2、从client角度来看,创建产品不用在告诉工厂我要什么产品,而是直接找某个工厂要产品。