799 B
799 B
Provide an interface for creating families of related or dependent objects without specifying their concrete classes.(为创建一组相关或相互依赖的对象提供一个接口,而且无须指定它们的具体类。)
有 N 个产品族,在抽象工厂类中就应该有 N 个创建方法
有 M 个产品等级就应该有 M 个实现工厂类,在每个实现工厂中,实现不同产品族的生产任务。
优点
- 封装性
- 产品族内的约束为非公开状态
缺点
产品族扩展非常困难,需要修改抽象类及实现类违反开闭原则, 横向扩展容易,纵向扩展困难
使用场景
一个对象族(一组没有任何关系的对象)都有相同的约束

