从2022年3月6日开始学习设计模式相关知识【Java设计模式 前言】我为什么要学习设计模式,到现在半年余,终于将设计思想、设计原则、重构相关内容学习完了,设计模式也学习完了创建型和结构型,回顾年度目标,不得不说【设计模式】是个难啃的骨头,还是要今年啃完:
不过学习完了收获也是最大的,这个收获更多的是道的收获,培养的是一种潜意识,可以说内功有所提升这里对设计思想、设计原则、重构相关内容做个总结,设计模式则等待行为型都学习完后再进行一个统一的总结。
整体目标
回看最初的目标:【Java设计模式 学习目标及大纲】高质量代码的标准及实现路径在这篇Blog里我们明确了什么是高质量的代码:易维护、易读、易扩展、灵活、简洁、可复用、可测试,也知道高质量代码的达成路径工具箱:面向对象设计思想是基本指导思想,是很多设计原则、设计模式的实现基础;设计原则是代码设计的抽象经验总结、是设计模式设计的指导原则;设计模式是代码设计的一套具体解决方案或设计思路,主要用来提高代码可扩展性;编程规范是一套可执行的代码编写规范,主要用来提高代码的可读性;代码重构依赖面向对象设计思想、设计原则、设计模式、编程规范实现,主要用来提高代码的可维护性和可读性。
- 面向对象设计思想因为其具有丰富的特性(封装、抽象、继承、多态),可以实现很多复杂的设计思路,是很多设计原则、设计模式等编码实现的基础。理论支撑,实现基础,核心思想:编程规范及代码组织
- 设计原则是指导我们代码设计的一些经验总结,对于某些场景下,是否应该应用某种设计模式,具有指导意义。比如,“开闭原则”是很多设计模式(策略、模板等)的指导原则。代码组织:高质量编程的道
- 设计模式是针对软件开发中经常遇到的一些设计问题,总结出来的一套解决方案或者设计思路。应用设计模式的主要目的是提高代码的可扩展性。从抽象程度上来讲,设计原则比设计模式更抽象。设计模式更加具体、更加可执行。代码组织:高质量编程的术
- 编程规范主要解决的是代码的可读性问题。编码规范相对于设计原则、设计模式,更加具体、更加偏重代码细节、更加能落地。持续的小重构依赖的理论基础主要就是编程规范。编程规范
- 代码重构作为保持代码质量不下降的有效手段,利用的就是面向对象、设计原则、设计模式、编码规范这些理论。高质量编程实践
实际上,面向对象、设计原则、设计模式、编程规范、代码重构,这五者都是保持或者提高代码质量的方法论,本质上都是服务于编写高质量代码这一件事的。也可以这么理解:设计思想、设计原则、设计模式、编程规范,在合适的时机进行代码重构,时刻保证和提高代码的质量 ,它们之间的关系可以组织为:
设计思想
面对对象思想博客列表和文章脉络:
文章列表
基于以上文章划分的脉络如下:
文章结构
关于面向对象思想的文章结构如下
关键知识点索引
具体关键概念的索引脑图
设计原则
关于设计原则的文章列表,文章脉络,概念结构
文章列表
这其中涉及到不少知识点,总体总结在这里:
文章结构
其中【基于接口而非实现编程】和【多用组合少用继承】不仅是一种编程技巧,也是编程思想和最佳实践。
关键知识点索引
关键知识索引如下:
代码重构
重构相关的文章列表、文章脉络和关键索引
文章列表
代码重构部分的文章列表如下:
文章结构
代码重构部分的文章结构如下:
关键知识点索引
关于重构部分知识点,关键索引如下
总结一下
对于总结的总结来说,好像没什么可说的,一言以蔽之:通过继承、封装、多态、抽象、基于接口而非实现编程、多用组合少用继承、高内聚-松耦合、控制反转等设计思想;SOLID、KISS、DRY、YAGNI、LOD等设计原则和法则;创建型、结构型、行为型这些设计模式;依赖注入等编程技巧;模块化等系统设计技巧;命名与注释、编程风格、编程技巧等编程规范,在持续的重构中发挥作用。通过单元测试保证重构的顺利进行。而最终的目的都是保证易扩展、易维护、易复用、易读、简介、灵活、易测试的高质量代码活力常在。