设计模式 - 抽象工厂
1.设计模式6原则 2.设计模式23种3.设计模式 - 单例模式4.设计模式 - 原型模式
5.设计模式 - 抽象工厂
6.设计模式 - 工厂方法7.设计模式 - 解释器模式8.设计模式 - 代理模式9.设计模式 - 外观模式10.设计模式 - 装饰者模式11.设计模式 - 组合模式12.设计模式 - 适配器模式13.设计模式 - 桥接模式14.设计模式 - 建造者模式15.设计模式 - 享元模式16.设计模式 - 策略模式17.设计模式 - 访问者模式18.设计模式 - 状态模式19.设计模式 - 迭代器模式20.设计模式 - 观察者模式21.设计模式 - 命令模式22.设计模式 - 中介者模式23.设计模式 - 备忘录模式24.设计模式 - 职责链模式25.设计模式 - 模板方法模式定义
Provide an interface for creating families of related or dependent objects without specifying their concrete classes.
UML
- 一系列相关或依赖的对象
- 对象的具体实现
- 抽象工厂基类
- 抽象工厂具体实现
3是稳定的,4是变化的,可有其他家族类的实现
实例
反射,语言本地化,不同数据库访问,QQ换肤
- 根据不同的配置或上下文环境加载具有相同接口的不同类实例。
- 需要与多个不同系列的相关产品交互,但无法提前获取相关信息,或不想基于产品的具体类进行构建。
比较
抽象工厂 | 备注 | |
---|---|---|
建造者 | 抽象工厂生产一些列相关对象,并会马上返回产品 | 建造者重点关注如何分步生成复杂对象,在获取产品前可以执行一些额外构造步骤 |
工厂方法 | 抽象工厂通常基于一组工厂方法,也可以使用原型模式生成 | |
外观模式 | 想对客户端隐藏子系统创建对象的方式,可以使用抽象工厂替代外观模式 | |
桥接模式 | 若桥接定义的抽象只能特定实现,可以与抽象工厂搭配使用。抽象工厂可以对这些关系进行封装,对客户端隐藏其复杂性 | |
单例模式 | 抽象工厂可以用单例模式实现 | 抽象工厂、生成器、原型都可以单例实现l |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
2021-04-21 Ling应用