what
是一种创建对象的方法
开闭原则
why
产品扩展
把对象的创建和使用的过程分开 进行解耦
使用对象的时候 并不需要知道对象的创建逻辑 把创建对象的工作转移到工厂
创建对象只需要知道对象名
how
Factory Method Pattern 工厂方法模式
利用接口实现面向接口的编程 定义一个创建对象的接口 实现接口的类来决定实例化哪个类 将类的实例化推迟到子类中进行
一般使用XML解析+反射的方式 创建对象 调用对象的方法
针对一个产品等级结构
Simple Factory Pattern 简单工厂模式
工厂对象决定创建出哪一种产品类的实例
Abstract Factory Pattern 抽象工厂模式
提供一个创建一系列相关或相互依赖对象的接口,无需指定具体的类 扩展困难 需要修改抽象工厂的接口 增加了系统的抽象性和理解难度
针对多个产品等级结构
产品等级结构:
产品的继承结构
产品族:
同一个工厂生产的,位于不同产品等级结构中的一组产品