设计模式 - 抽象工厂

定义

Provide an interface for creating families of related or dependent objects without specifying their concrete classes.

UML

  1. 一系列相关或依赖的对象
  2. 对象的具体实现
  3. 抽象工厂基类
  4. 抽象工厂具体实现

3是稳定的,4是变化的,可有其他家族类的实现

实例

反射,语言本地化,不同数据库访问,QQ换肤

  1. 根据不同的配置或上下文环境加载具有相同接口的不同类实例。
  2. 需要与多个不同系列的相关产品交互,但无法提前获取相关信息,或不想基于产品的具体类进行构建。

比较

抽象工厂 备注
建造者 抽象工厂生产一些列相关对象,并会马上返回产品 建造者重点关注如何分步生成复杂对象,在获取产品前可以执行一些额外构造步骤
工厂方法 抽象工厂通常基于一组工厂方法,也可以使用原型模式生成
外观模式 想对客户端隐藏子系统创建对象的方式,可以使用抽象工厂替代外观模式
桥接模式 若桥接定义的抽象只能特定实现,可以与抽象工厂搭配使用。抽象工厂可以对这些关系进行封装,对客户端隐藏其复杂性
单例模式 抽象工厂可以用单例模式实现 抽象工厂、生成器、原型都可以单例实现l
posted @   wesson2019  阅读(33)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
历史上的今天:
2021-04-21 Ling应用
点击右上角即可分享
微信分享提示