设计模式总结 (1)模式分类
模式前面的序号是模式在《研磨设计模式》一书中的序号。
模式 | 模式 |
---|---|
创建型 | |
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. 责任链 | 一个消息,多个处理类,每个类可以有下一个处理对象 |
设计模式总结 (1)模式分类相关推荐
- 大话设计模式-23中设计模式分类
设计模式的分类 总体设计模式分为三大类: 创建型模式 共五种:工厂方法模式,抽象工厂模式,单例模式,建造者模式,原型模式. 结构型模式 共七种:适配器模式,装饰器模式,代理模式,外观模式,桥接模式,组 ...
- C++设计模式(转)
在简书看到CharlesW同学学习设计模式的笔记,感觉很有意思(单身狗的妄想),转载下. 转载:https://www.jianshu.com/p/082662126bdd 好的软件设计是多用代码复用 ...
- 快速了解Java设计模式
文章目录 背景 设计模式分类 创建型模式 工厂方法(Factory) 抽象工厂(Factory) 原型模式(Prototype) 建造者模式(Builder) 单例模式(Singleton) 结构型模 ...
- 干货!万字设计模式面试题,再也不需要怂面试官了!
文章目录 什么是设计模式 为什么要学习设计模式 设计模式分类 设计模式的六大原则 开放封闭原则(Open Close Principle) 里氏代换原则(Liskov Substitution Pri ...
- 23种设计模式的分类和应用场景总结【设计模式】
23种设计模式的分类和应用场景总结[设计模式] 设计模式分类 创建型模式 结构型模式 行为型模式 设计模式的几种原则 应用场景总结 各种模式的详细介绍 创建型模式 设计模式分类 23种设计模式可以分为 ...
- 1.设计模式与面向对象原则
本文重点在解释什么是设计模式?什么场景下可以用这种设计模式?尝试以实际的问题来驱动学习,使得我们对设计模式的理解更为深刻而具体. 本文的内容分为三部分: 面向对象的设计原则 UML类图定义 二十四种设 ...
- 【2022最新Java面试宝典】—— 设计模式面试题(14道含答案)
目录 1.什么是设计模式 2.为什么要学习设计模式 3.设计模式分类 4.设计模式的六大原则 5.单例模式 1.什么是单例 2.那些地方用到了单例模式 3.单例优缺点 4.单例模式使用注意事项: 5. ...
- 【金三银四】设计模式面试题(2021最新版)
目录 前言 1.什么是设计模式 2.为什么要学习设计模式 3.设计模式分类 4.设计模式的六大原则 5.单例模式 5.1 什么是单例 5.2 哪些地方用到了单例模式 5.3 单例优缺点 5.4 单例模 ...
- Java程序员从笨鸟到菜鸟全部博客目录
本文来自:曹胜欢博客专栏.转载请注明出处:http://blog.csdn.NET/csh624366188 欢迎关注微信账号:java那些事:csh624366188.每天一篇java相关的文章 大 ...
- lsof查看占用高_查看端口占用情况lsof,并关闭对应进程kill
01.LoT.UI 前后台通用框架分解系列之--小图片背景全屏显示(可自动切换背景) LOT.UI分解系列汇总:http://www.cnblogs.com/dunitian/p/4822808.ht ...
最新文章
- Python dataframe指定列顺序输出 + 列数据转化成字符 + 数据框转化成列表
- 5G+AI,中国版无人驾驶可以有多猛?
- jsp页面之间跳转的数据传递
- 深度学习-机器学习(神经网络的应用 上)
- oracle中的常用函数
- Mysql 执行流程
- 系统学习深度学习(十一)--dropout,dropconect
- 百面机器学习——什么是决策树
- c++_如何将一个const变量转成非const变量_const_cast
- python 进位_Python中常见的数制转换的说明
- 软考程序员Java答题速成_软考程序员考试下午考题解答技巧方法
- 学习编程必备常用英语单词
- 联想柳传志为中国商业确立了一个标杆
- 全系列三极管应用参数和代换大全
- java endian_java – 将小Endian文件转换成大Endian
- 一种 Python 获取时间序列数据集的方式
- SpringSecurity专题(五)-数据库认证
- 北京信息科技大学计算机专业强不强,北京信息科技大学怎么样 2021年全国排名多少...
- python实现树结构并显示
- 服装设计师的灵感来源于哪里?
热门文章
- go初学者安装echo框架
- 多线程:AQS的一些心得
- 框架:mybatis的缓存机制
- 软件测试-PR录制脚本程序的时候出现license invalid,error code=-13或者-24的错误
- linux 关闭网络防火墙设置方法,CentOS Linux防火墙配置及关闭方法
- db2分页查询语句优化_面试官:数据量很大,分页查询很慢,怎么优化?
- 服务器log文件清理,服务器日志切割清理工具(LogCutter)
- python中如何定义颜色_Python图像处理之颜色的定义与使用分析
- 乱乱乱!那些惨不忍睹的机房布线
- 浅谈阀控型铅酸蓄电池在数据中心的应用与日常管理