如何学设计模式 - 先种下一颗种子
记录下自己学习设计模式心路历程。设计模式是非常伟大的软件思想,希望这篇文章能在你心灵埋下颗种子!
设计模式之于软件开发人员的重要性可以说人人都知道,可是能看完整本书的人能有多少?看完后理解的人能有多少?理解后应用于实践的人能有多少?我算是个勤奋的人,所以我看完了而且还不止看了一遍,甚至看了不止一本,可是总是和实际情况挂不上钩。只要放下一段时间,内容就都忘了。直到后来,我逐步想明白了设计模式的学习之道。。。
想明白就不再焦虑了:思想性的东西确实不容易一下GET到
不像一些讲语法类的书籍,设计模式属于思想性内容从实践中提取、升华而来。好比数学和哲学,数学多练就可以了,哲学这门课内容当时学的一塌糊涂,因为缺少实践啊。于是将设计模式放下了一段时间,记不住不要紧,能用起来其中的几个模式就可以了,先多码代码把实践经验积累起来再说。第一步,不强求能全部记住,能用上一点就可以了。
一念境转:开始敲样例代码
我想说的是即使积累了很多,设计模式学习起来仍然不容易。23个模式那是大师们从实际中推导而来,我们看的是推导的结论,而过程无从知道;另一方面在自己的项目实践中也积累了不少的疑惑,知道这个地方的代码写得不够优雅,就是不知道如何去解决。这给我一种感觉,在23个设计模式中有一帖药,但就不知道是哪个可以来解决问题。在试了各种方法后,我发现了一个好途径,那就。。。把书上的样例代码敲一遍。
对,就是这个简单的方法,一直放在我面前却不知道。开始敲代码后,开始可以理解每个模式所解决的问题点所在,也开始不由自主的和实际中的疑惑贯穿起来。
敲代码还有个好处,就是把内容刻在了脑子里。我也逐步理解之前上学的时候,为什么语文老师要大家背诵。相当于我们脑海里种下了一颗种子,有一天突然它就会发芽长大。
用直觉指导:不断在实践中使用
这个阶段我还在进行中。知识运用娴熟到一定程度是不再需要思考,一提笔那就是直指核心。不断实际,才能将知识内化成为自己的习惯。
其他一些很有价值经验:
1,找一本好的书:《研磨设计模式》是讲的最透彻的一本,值得翻到烂。800页的书,我是放到了iPad中看,非常愧对作者,之后会多买几本用来送人,支持下作者。
2,几本书对比着看:我主业是iOS,相关语言的就《Objective-C编程之道:iOS设计模式解析》;之前还有《设计模式之禅》;加上《研磨设计模式》三本书可以一块对比着看。设计模式是思想性的知识,落地的形势并不固定,可看看不同作者的说法。
3,琢磨,反复琢磨:上下班乘地铁要花2个小时,是非常好的思考时间,我通常会把学习的设计模式反复放脑子里琢磨;作为2个小朋友的Daddy,这2小时也成了我非常好的独处时间。
对于编程有了更深体悟:
1,面向接口的编程:你压根不需要知道具体是谁在提供服务。
2,面向接口的好处:隔离,还是隔离。
3,如何面向接口编程:先写接口,再写实现。
4,封装的好处:在真实提供服务的实体上隔离一层,你可以改变任何你想改变的事。
5,明白了为什么适配、装饰、桥接、外观、代理 称作为行为模式?因为它们改变了原有的行为。
6,不要过度继承。
对于学习有了更深体悟:
1,有的知识你知道它有用,但还没法一下达到理解它的水平,这是有个笨办法就是把它背下来。
2,实践->总结->思考 :这是提升自己的循环,很朴素,很实用。
3,工作要讲究成效,学习也要讲究成效,生活也是。
人生有限,唯以高效取胜