当前位置: 首页 > 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),是程序员的软实力,就像设计模式书籍作者说的那样,是程序员的内功。而对于学习设计模式,我认为毕业的标准是“能看出来,能写出来”,也就是说看到人家的代码,要知道人家使用了某种设计模式,而对于自己编码,要能根据业务场景知道可以使用某种设计模式。

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

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

总结

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

http://www.lqws.cn/news/194959.html

相关文章:

  • 【办公类-104-01】20250606通义万相50分一天用完,通义万相2.1专业版测试
  • Guava LoadingCache 使用指南
  • Beckhoff(倍福)PLC 顺控程序转换条件解读
  • C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)
  • 【Linux】Linux基础指令3
  • 三模冗余设计
  • 软件测试python学习
  • DDD架构实战 充血模型 电商订单
  • 筛选企业订单和业绩显著增长的标的
  • 低内聚高耦合的衡量指标
  • AI书签管理工具开发全记录(十三):TUI基本框架搭建
  • Python训练day40
  • robot_lab——rsl_rl的train.py整体逻辑
  • 西北某省级联通公司:3D动环模块如何实现机房“一屏统管”?
  • 智谱清言沉思智能体,天工智能体,agenticSeek等AI Agent测试记录
  • 5.1 HarmonyOS NEXT系统级性能调优:内核调度、I/O优化与多线程管理实战
  • 独家首发!低照度环境下YOLOv8的增强方案——从理论到TensorRT部署
  • caliper config.yaml 文件配置,解释了每个配置项的作用和注意事项
  • 基于 openEuler 22.03 LTS SP1 构建 DPDK 22.11.8 开发环境指南
  • 嵌入(Embedding)技术的实现原理与应用场景解析
  • 阿里开源千问3向量模型 超越Google与OpenAI
  • 六、【ESP32开发全栈指南:深入解析ESP32 IDF中的WiFi AP模式开发】
  • 数据结构与算法——并查集
  • DAX权威指南8:DAX引擎与存储优化
  • 【android bluetooth 协议分析 02】【bluetooth hal 层详解 8】【高通蓝牙hal-进程被杀之前日志收集流程】
  • Redis学习笔记
  • 面向开发者的提示词工程④——文本推断(Inferring)
  • AI预测3D新模型百十个定位预测+胆码预测+去和尾2025年6月6日第100弹
  • 从入门到进阶:Python 学习参考书的深度解析
  • Google机器学习实践指南(机器学习模型泛化能力)