今天聊聊我沉淀比较久的一门技术,设计模式。这里是第一篇,算是概论,讲一下我这些年来学习设计模式的心路历程。
(一)
设计模式和数据结构,在日常开发工作中,无论是App还是后端Java开发,都非常实用,是必须要牢牢掌握的两门基本功。
我不是科班出身,所以我第一次接触设计模式,是在05年,也就是工作一年之后,在书店看到讲设计模式的一本书,就买回来从头做了一遍,前几个模式还比较简单,越到后面越看着费劲。
书看了一遍遍,但是在项目中很少使用到,所以能沉淀下来的也就单例、简单工厂、模版方法模式而已。这是第1个阶段:初识。
后来经常在面试中被问的张口结舌,很多模式明明看过,却当场画不出来UML图,以及它背后的深刻思想。于是我开始死记硬背,把23个设计模式的UML图和代码实现,如同背诵乘法口诀一样,牢牢的记在心里。每次面试前一天,躺床上闭上眼睛把设计模式从头在脑子里过一遍,遇到哪个记不清了,就拿出书来看看,然后闭上眼睛继续过,因为是躺床上闭着眼睛,所以经常就睡着了,醒了继续,然后就这么全都背下来了。这是第2个阶段:死记硬背。
后来就开始写博客了。十年来我写了五六百篇文章。写博客分为三层境界,第一层是自己能看懂,几年后也能看懂,这是读书笔记;第二层境界是让读者也能看懂,这是教学贴;第三层是你能讲一些自己独特的心得体会,这是老司机。我从一开始写笔记给自己看,到让更多的人也能看懂,为此参考了大量的技术文章和数据。08年设计模式比较流行的是吕震宇和李会军的文章系列,此外,还有一本书不得不提,《Java与设计模式》,对我的影响都是很大的。这是第3个阶段,把自己的理解讲给别人听。
(二)
世界上最长的路,是什么路?