Abstract Factory(抽象工厂,Creational Pattern)
- 抽象工厂模式提供一个接口,它可以创造一组相关的或相互依赖的对象‘
- 也叫Kit
- 工厂模式只创建一个对象,抽象工厂可以创建一组
- 抽象工厂模式出现最初是为了让图形用户界面的窗口风格保持一致
啥时用
- 一个系统要与它的产品的创建、组合、呈现独立开时
- 一个系统要用到许多组对象中的一组来配置时
- 一组相关的产品对象被设计来一起使用
- 提供一组产品对象时只想显示它们的接口而不暴露实现
结构
- 抽象工厂
- 实体工厂
- 抽象产品
- 实体产品
- 客户端
优缺点
- 优点
- 隔绝了实体类
- 改变产品组更方便
- 提高了产品之间的一致性,一个系统只能使用同一组产品中的对象
- 缺点
- 增加新的产品种类有些困难
实现
- 工厂都是单例的,一个应用程序通常只需要一个工厂实例
- 每个产品都要有对应的工厂方法
- 工厂要可扩展,但是通常很难添加新产品。更灵活但不太安全的设计是为创建对象的操作添加参数