每个人理解的设计模式应该都不太一样
16lz
2021-01-22
今天下雨,躺在靠椅上,捧着电脑,把《HEAD_FIRST设计模式》看完了,600 多页,应该是 4 个小时多些;然后周志明的 《深入理解Java虚拟机》看了半个小时,30-40 页。
经常看我推文的朋友应该知道,我有看书发笔记文章的习惯,但都是个人感悟,并不受欢迎,所以有兴趣点击底部 「阅读原文」链接,不单独推文了。
说回设计模式,谈到设计模式,第一反应都是 GoF 提出的 23 种设计模式,毕竟是开山之作,经典中的经典。通过看「设计模式之美」专栏、菜鸟教程总结的设计模式、C语言中文网总结的设计模式、《HEAD_FIRST设计模式》这些比较成体系的文章,给我的感觉就是,一千个读者有一千个哈姆雷特,每个人对设计模式的理解核心大致相同但又不尽相同。
我当前对设计模式的总体理解是,模式就是在某种场景下针对某类问题的某种解决办法;大部分设计模式的主要目的就是为了提高代码的可扩展性;方便代码扩展的手段就是,提取和抽象出可能变化的地方;但解决一个问题的同时必然会引出新的问题(比如可扩展性提高了,可读性基本就下降了),所以要清楚地知道设计模式的作用与缺点方能准确取舍。
想要写出高质量(可扩展性、可读性、可维护性...)的代码,掌握了设计模式是不够的,还得熟悉设计原则、设计思想、良好的代码规范、持续重构代码的意识。
这些都是底层的理论建设,是内功,没有心法与实战的驱动,是驾驭不了的。从一些高质量源码中,能挖掘到大师们驾驭好代码的心法与他们的实际使用经验,所以后续准备在 JDK 及一些开源的代码中扣一些代码自己分析分析,这块弄明白了,效果应该是立竿见影的。
高质量代码的内容都整理到下图复制链接在线浏览所有节点:https://www.processon.com/view/link/5ef8915be0b34d4dba5a959d
附一些设计模式的学习资料清单:
- 《HEAD_FIRST设计模式》
- GoF 的《设计模式》
- 《Java与模式》
- 《The Timeless Way of Building》、《A Pattern Language》,建筑领域的设计模式,也是软件中设计模式的思想源泉
- C语言中文网-设计模式http://c.biancheng.net/design_pattern/
- 菜鸟教程-设计模式https://www.runoob.com/design-pattern/design-pattern-tutorial.html
- 极客时间-设计模式之美,有些地方我看了三遍,偏实战与理解
更多相关文章
- 设计模式使用场景、优缺点汇总
- 几款代码高亮组件的体验,说不定你以后会用到
- 单例模式,这个面试题真那么简单吗?
- 从代码的改进,看参数行为化与Lambda
- Java8如何让自己的代码不那么啰嗦?!
- bootstrap高亮显示代码,且横向滚动
- 面试官:如何实现一个乐观锁(小白都能看得懂的代码)
- 单例模式的十种写法,你会几个?(重写版)
- binlog有哪些工作模式?Linux云计算运维入门