设计模式总结 模式分类
Posted thefist11
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式总结 模式分类相关的知识,希望对你有一定的参考价值。
模式前面的序号是模式在《研磨设计模式》一书中的序号。
模式 | 模式 |
---|---|
创建型 | |
2.简单工厂 | Factory 有一个createApi函数,传入不同的type,创建和调用不同的类:ImplA或ImplB。 |
3. 外观模式 | (多个子模块封装成一个模块) |
6. 工厂 | 父类在不知道具体实现的情况下, 完成自身的功能调用; 而具体的实现延迟到子类来实现 |
7. 抽象工厂 | 产品族,类层次复杂eg.多种cpu,多种主板 |
8.生成器 | 生成文件:头,中间,尾。有两种方式生成:txt,xml |
创建内存型 | |
5. 单例 | |
9.原型 | 订单拆分,克隆生成对象:不是创建新的对象实例,而是一个方法创建多个自己的对象 |
20. 享元模式 | 减少创建对象的数量,以减少内存,细粒度对象 |
结构型 | |
4. 适配器 | 文件读写,数据库读写 |
11. 代理模式 | (代理对象可以做一些事情,查询某个姓名的数据,而不是所有数据):需要查询所有用户数据,不能翻页都显示出来,只显示姓名,在需要的情况下,点击某个用户的姓名出现详细信息 |
13. 命令模式 | 命令发送,命令接收,命令invoker |
15. 组合模式 | 叶子和节点,引用关系,将叶子和节点都设计为一个类 |
24 桥接模式 | 二维对象抽象,分成一个抽象,一个实现,抽象类增加后的功能可以放在实现类中 |
25 访问者模式 | 有个多个数据需要进行统一处理,设计处理动作为放问者类 ,依次对每个被访问者进行访问,而访问的操作也有所不同 |
行为型 | |
10 中介者 | 显卡、声卡,光驱(同一个基类)都跟主板进行数据交互:主板调用某个对象来进行相应的操作 |
12. 观察者模式 | 消息通知 |
14. 迭代器模式 | (迭代器基类)std::vector容器 |
16 模板 | 基类相同,功能不同派生(把模板实现成为抽象类,为所有的子类提供了公共的功能,就是 定义了具体的算法骨架;) |
17. 策略模式 | (content上下文,多个策略类、多个上下文)eg. 加法、乘法、除法,本质上是分离算法,选择实现 |
18. 状态模式 | 多个状态 |
19. 备忘录 | careTaker通过中间人originator保存对象memento(保存对象状态、恢复状态), memento是内存变量,careTaker的保存和恢复可能是数据io。eg.undo/redo |
21 解释器 | (读取xml文件,抽象语法树,叶子类,节点类,context上下文,进一步地,parse"a/b/c/d"), eg.加法、除法,or |
22 装饰模式 | (类是多层叠加派生),扩展功能.eg. 画像加框,又加玻璃,eg. 形状,圆,直线,画形状,画红色的形状 |
23. 责任链 | 一个消息,多个处理类,每个类可以有下一个处理对象 |
以上是关于设计模式总结 模式分类的主要内容,如果未能解决你的问题,请参考以下文章