1.岁月的沉淀
我们为什么要学设计模式?
如果是在我刚成为程序员的时候,我大概会这么回答:
因为设计模式是前人经验的总结,可以用来解决特定环境下,重复出现的特定问题。
同时也是程序员进阶的必备知识。
上面的说法当然没有错,但是如果让现在的我来回答,我会加上这几句:
因为设计模式不会过时。
是的,在工作多年以后,看见各种技术如大浪淘沙一般从兴起到衰落,看见主流技术栈两三年就换血一次,我不禁陷入了深深的担心:如果我学不动了怎么办?
特别是在年龄渐长之后,虽然大多数技术都有相通之处,想要快速掌握并不难。可是细微之处却也有不少坑,真用起来,踩坑肯定也是少不了的。
所以渐渐的,我开始寻找那些不变的东西,寻找在这些让人眼花缭乱的技术背后,在漫长岁月中真正能沉淀下来的东西。
不错,我想你已经猜到了,就是那些老生常谈的东西,大学时老师曾经无数次在我耳边强调的东西:
数据结构、算法、设计模式…...
最质朴的东西往往最珍贵,古人诚不欺我,哈哈。
作为一名普通的码农,数据结构和算法平时接触不多,真正用的多的,还是设计模式。
-
设计一个功能模块要用到设计模式,否则根本没法维护
-
扒开源项目的源码要懂设计模式,否则有可能看不懂
-
代码review也会用到,虽然不直接用模式,但是会用到原则
所以,对我而言,设计模式已经成为挡在身前的一座山,要么跨过去,要么永远止步于此。
所以有了简明设计模式的写作计划,愿我们都能征服这座大山,最后同立山巅,看日升日落,云卷云舒。
2.设计模式的分类
设计模式一共23个。
其实设计模式之间也有很多共性和差异,为了方便理解和记忆,一般来说会分为三类:
-
创建型模式:抽象了对象实例化过程,用来帮助创建对象的实例
-
结构型模式:描述如何组合类和对象以获得更大的结构
-
行为型模式:描述算法和对象间职责的分配
具体情况如下图:
3.磨一下刀
所谓磨刀不误砍柴工,在学习设计模式之前,我们还需要掌握两种武器:设计原则和UML类图
学习UML类图,是为了能够更好的理解设计模式的结构
学习设计原则,则是为了知道设计模式为什么要这么设计
这个就放到下次说吧。
本文由博客一文多发平台 OpenWrite 发布!