设计模式 - 抽象工厂
定义
Provide an interface for creating families of related or dependent objects without specifying their concrete classes.
UML

- 一系列相关或依赖的对象
- 对象的具体实现
- 抽象工厂基类
- 抽象工厂具体实现
3是稳定的,4是变化的,可有其他家族类的实现
实例
反射,语言本地化,不同数据库访问,QQ换肤
- 根据不同的配置或上下文环境加载具有相同接口的不同类实例。
- 需要与多个不同系列的相关产品交互,但无法提前获取相关信息,或不想基于产品的具体类进行构建。
比较
| 抽象工厂 | 备注 | |
|---|---|---|
| 建造者 | 抽象工厂生产一些列相关对象,并会马上返回产品 | 建造者重点关注如何分步生成复杂对象,在获取产品前可以执行一些额外构造步骤 | 
| 工厂方法 | 抽象工厂通常基于一组工厂方法,也可以使用原型模式生成 | |
| 外观模式 | 想对客户端隐藏子系统创建对象的方式,可以使用抽象工厂替代外观模式 | |
| 桥接模式 | 若桥接定义的抽象只能特定实现,可以与抽象工厂搭配使用。抽象工厂可以对这些关系进行封装,对客户端隐藏其复杂性 | |
| 单例模式 | 抽象工厂可以用单例模式实现 | 抽象工厂、生成器、原型都可以单例实现l | 

 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号