1.意图
提供一个创建一系列相关或相互依赖的接口,而无需指定它们具体的类。
2.结构
3.参与者
- AbstractFactory
声明一个创建抽象产品对象的操作接口 - ConcreteFactory
实现创建具体产品对象的操作 - AbstractProduct
为一类产品对象声明一个接口 - ConcreteProduct
定义一个将被相应的具体工厂创建的产品对象 - Client
仅使用由AbstractFactory和AbstractProduct声明的接口
4.优缺点
- 分离了具体的类
- 使得易于交换产品系列
- 有利于产品的一致性
- 难以支持新种类的产品