# 定义:为创建一组或相互关联或相互依赖的对象提供一个接口,而且无序指定它们的具体类 - 注意:有n个产品族,在抽象工厂类中就应该有n个创建方法. - 注意:有m个产品等级,就有m个实现工厂类,且在每个实现工厂中,实现不同产品族的生产任务. --- #### 特点: - 优点: - 封装性好,知道工厂类就能创建需要的对象 - 产品族内的约束为非公开状态

- 缺点: - 产品族扩展性差(是产品族扩展差,不是产品类),扩展时需要改动所有的工厂类去实现生成产品族的方法,违反开闭原则

#### 使用场景 一个对象族(或是一组没有任何关系的对象)都有相同约束,则可使用抽象工厂模式.