学习设计模式前明确的几个问题
设计模式是什么?
就是代码设计的一种模式。
好吧,看上去像是一句废话。
我们编码的目的自然是为了实现特定的需求,某种意义上讲,只要需求实现了,我们就达到了目的。
但事实上,在实际应用中,需求是多变的,甚至编码的人员也是多变的,这就带来了一些功能的拓展,运维接手的难易程度。
良好的编程习惯可以给我们带来很大便捷,具体请见阿里巴巴编程规约
在编码规约中,有一个环节是设计阶段,这个阶段,对于产品经理来说,是产品功能的设计;对于技术经理来说,可能是表设计,架构选用;对于核心开发的程序员来说,最重要但就是设计模式了,这才是系统落地的最后一步。
所以,设计模式说白了就是前人根据经验总结出来的一套有利于需求更新迭代,代码重构,后期运维等各方面的诀窍。
是不是一定要用设计模式
既然我们知道了设计模式是前人根据经验总结出来的一套诀窍,所以不一定非得用设计模式,不用也不会影响系统功能的实现。
但是自然就没有了诀窍带来的便捷
怎么学设计模式
关于读书的选取,我读过一些设计模式的书,有的写的很细致,比如极客学院的《详解23种设计模式》,也有通俗易懂的《大话设计模式》,当然还有一些其他的,比较专业晦涩的,有点读不下去。
所以我个人推荐上面我说的两本。
关于具体的学校,我觉得没必要囫囵吞枣都学一遍,看似当时学会了,其实没什么用。
第一遍学习,做一个大致的了解,明白有几种设计模式,每种大概是个什么样子。
第二遍学习,重点看没种设计模式的例子,比如在spring或者jdk中的例子,加深印象,然后学着写几个例子。
第三遍学习,要尝试着在日常开发中思考,这里能不能用设计模式,能的话用哪种,这个时候其实就会自主的回顾温习学过的设计模式了,而且这样的思考多了,有利于加深对他们之间的区别的认知。在这个过程中肯定少不了用的不合适的场景,我觉得这个是正常的。总得经过这个过程。
第四遍学习,就是在使用了一段时间后,再去重复前两步的过程。
不断的重复,阅读例子,思考,使用。
所以,这是一个很漫长的过程…
但是,一旦学到了那个感觉,你的代码质量和别人就是一个天上一个地下