当前位置: 首页 > news >正文

【设计模式-5】设计模式的总结

说明:介绍完所有的设计模式,本文做一下总结

设计模式介绍

博主写的设计模式博客如下:

  • 【设计模式-1】UML和设计原则

  • 【设计模式-2.1】创建型——单例模式

  • 【设计模式-2.2】创建型——简单工厂和工厂模式

  • 【设计模式-2.3】创建型——原型模式

  • 【设计模式-2.4】创建型——抽象工厂模式

  • 【设计模式-2.5】创建型——建造者模式

  • 【设计模式-3.1】结构型——外观模式

  • 【设计模式-3.2】结构型——适配器模式

  • 【设计模式-3.3】结构型——享元模式

  • 【设计模式-3.4】结构型——代理模式

  • 【设计模式-3.5】结构型——装饰器模式

  • 【设计模式-3.6】结构型——桥接模式

  • 【设计模式-3.7】结构型——组合模式

  • 【设计模式-4.1】行为型——策略模式

  • 【设计模式-4.2】行为型——观察者模式

  • 【设计模式-4.3】行为型——责任链模式

  • 【设计模式-4.4】行为型——模板方法模式

  • 【设计模式-4.5】行为型——迭代器模式

  • 【设计模式-4.6】行为型——状态模式

  • 【设计模式-4.7】行为型——备忘录模式

  • 【设计模式-4.8】行为型——中介者模式

  • 【设计模式-4.9】行为型——命令模式

  • 【设计模式-4.10】行为型——访问者模式

  • 【设计模式-4.11】行为型——解释器模式

参考书籍

在学习设计模式,写博客时,同时在看以下几本书:

在这里插入图片描述


其中,完整读完的只有《秒懂设计模式》《设计模式之艺术》,每本书的阅读感受如下

  • 《秒懂设计模式》刘韬著,人民邮电出版社

如果你对设计模式一无所知,想用最短的时间、最少的精力较为完整地了解设计模式,很推荐看这本,书中的例子非常棒。


  • 《设计模式就该这样学》谭勇德著,电子工业出版社

书中结合JDK、Spring、Mybatis等开源框架的源码作为例子介绍,最后还介绍了设计模式的总结,非常不错。


  • 《设计模式之美》王争(小争哥)著,人民邮电出版社

书前一半都在介绍如何写出高质量代码和代码规范,很有启发,值得一看。


  • 《设计模式之艺术》刘伟著,清华大学出版社

书中介绍每种设计模式后,都扩展的介绍了一些例子,对理解设计模式很有帮助。像原型模式,作者提到可以使用IO流序列化的方式,实现对引用类型的对象进行深拷贝,影响深刻。


  • 《设计模式(第2版)》刘伟主编,清华大学出版社

是《设计模式之艺术》的第2版,个人对比的看了一下,内容感觉不如第1版,单例模式最后的通过内部类的方式初始化(IoDH),不知道为什么竟然在第2版中去掉了。

但是第2版纸张用的浅绿色,可以保护视力。


  • 《图解设计模式》【日】结城浩著,人民邮电出版社

没怎么看,但作者的《数学女孩》我看了第一册,很好看,非常推荐。


  • 《设计模式》【美】埃里克·伽马(Erich Gamma)、理查德·赫尔姆(Richard Helm)、拉尔夫·约翰逊(Ralph Johnson)、约翰·威利斯迪斯(John Vlissides)著

英文版,看不懂,没怎么看,不做评价

设计模式与源码

这里整理一下《设计模式就该这样学》中关于设计模式在JDK或开源框架中的体现,方便后面去针对性的撸源码。

在这里插入图片描述

个人理解

个人认为,设计模式不像一门技术或者工具(如Redis、MySQL、Kafka),是程序员的软实力,就像设计模式书籍作者说的那样,是程序员的内功。而对于学习设计模式,我认为毕业的标准是“能看出来,能写出来”,也就是说看到人家的代码,要知道人家使用了某种设计模式,而对于自己编码,要能根据业务场景知道可以使用某种设计模式。

对于“能看出来”,除了充分理解各种设计模式,还应该能记住设计模式的英文单词,这能帮助我们理解代码,理解编码程序员的意图。

对于“能写出来”,当然就需要牢记各种设计模式的使用场景和特点,也需要熟悉各种设计模式的代码表现,如果只是在需要使用的时候再去看,大概率不会有好的结果,可能会出现让业务适用于设计模式的情况,这就本末倒置了。

总结

本文总结了设计模式相关的一些书籍,及设计模式在源码框架上的体现。

相关文章:

  • 【学习笔记】构造函数+重载相关
  • Halcon腐蚀例子
  • php执行系统命令的四个常用函数
  • cursor和windsurf使用体验对比
  • 国10平方拆分、数正方形
  • python --导出数据库表结构(pymysql)
  • 【Linux】awk 命令详解及使用示例:结构化文本数据处理工具
  • boost::qvm 使用示例
  • FineReport模板认证找不到模板
  • 逻辑卷和硬盘配额(补充)
  • GT接收端共模电压
  • 永磁同步电机控制算法--模糊PI转速控制器
  • Spring Cloud核心组件深度解析(2025终极指南)
  • nuScenes 数据集及同类型自动驾驶数据集介绍
  • vcs仿真产生fsdb波形的两种方式
  • 关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案
  • Cesium添加图片标记点、glb模型
  • 【机械视觉】Halcon—【十一、车牌检测和筛子检测】
  • 爱普生差分晶振SG2016HHN精准医疗的时钟保障
  • 软件验收报告对企业的重要性
  • web技术网站开发/武汉seo公司
  • 企业做网站哪家公司好/特色产品推广方案
  • php网站制作软件/青岛seo招聘
  • 沭阳各乡镇做网站/今天热搜前十名
  • 东营两学一做网站/站长工具使用
  • 做网站优化的弊端/中文搜索引擎有哪些