曾经读书的时候看过设计模式,当时只是看看罢了,没有想到要深入的学习,因为觉得学了也白学,一会儿就忘了。最近恰好有时间就重新看了看,于是记下了自己对学习DP的一点拙见。
GOF的23种设计模式仅仅告诉我们一些常用的代码设计方案,它是对前人良好代码的总结。设计模式是变幻莫测的,你可以创造它,也可改进它。设计模式的使用需要根据具体的情况而定。不能死读那23种模式(JDK中的代码还不止23种),为了模式而学。要将它看成读圣人的代码来看待。一句话,其实我们学习设计模式就是为了丢弃它,让我们自然而然的养成良好的代码设计习惯。
这样一说,设计模式是灵活的,不光这23种,还可以创造,那么学习它还有什么用?靠自己经验堆积呀!
对于代码设计良好的高人,可以说设计模式是没有必要学习的,因为他们的代码中已经体现了设计模式。但是对于初学者,设计模式的学习还是有好处的,模式是让我们养成良好的代码设计习惯,其实学习它就等于学习高人的代码,使我们受益匪浅。为我们少走弯路,节约了很多的时间。开始学习的时候,没有必要完完全全的把它们全部看明白,只需要知道各个模式是干什么的,想想自己写的代码是不是也存在过类似的问题,了解下它的某个实现。当遇到相关问题时,再找到那个模式,然后再搞懂它,最后用到你的设计当中去。深入学了几个模式过后,再对比下他们,有什么异同,各自的优点是什么。久而久之,我们就能设计出真正的面向对象的、可重用性高的、易维护扩展的代码来。
工作了1年,对于软件开发体会特别深,学到的多,同时觉得自己还有很多东西需要学习。在这几年的软件开发学习过程中,深深的体会到学习不仅仅要把知识学到,更重要的还是掌握良好的学习方法,这样才能举一反三。
下个星期就去新公司上班啦,祝福自己有个好的开始!一定发挥自己的水平。呵呵~~
以下为转载内容:
1 先理解概念,再学习原则
先理解OO的基本概念,比如:封装、继承、多态、组合/聚合、依赖等,理解各概念的内涵,弄清楚这些概念的具体实现方式及各实现方式的优缺点。
2 先学习原则,再学习模式
设计原则是蕴含在设计模式后最根本的思想,掌握了基本的设计原则可以做到不拘泥于某个具体的设计模式,可以更容易的理解设计模式,知道在何种情况下应该采用某种模式,可以自己创造合理的设计模式。设计原则可以参考的2本书籍是《敏捷软件开发》与《UML与模式应用》。
3 从责任分配的角度学习设计模式
责任驱动的思想是学习设计模式的很好的思想,通过给各个类合理的分配实现某个需求的责任来理解设计模式。
4 类图与交互图并重
不要仅仅关注类图,类图仅仅是表达了类之间的静态关系,而交互图表达了对象之间的动态关系,可以看到对象与对象是如何协作完成一项事务。
5 从重构到模式
设计模式是一种固定的设计套路,是基于实践总结出来的可复用的解决方案,是一种经验的总结结果,如果仅仅看到最终的结果往往无法体会其用意,通过不断对某个需求的实现方案进行重构,得到最终的设计模式,可以对设计模式的背后的思想理解的更深刻。
6 记住典型案例
通过类比,通过隐喻,通过记住某个典型案例,可以得到对设计模式的感性认识。
7 从客户的角度考虑如何使用
在理解设计模式时,一定要从使用这些类的客户的角度来考虑是如何使用的?这样可以更容易理解该模式是如何对客户来封装的,实现了哪些封装,为了实现这些封装,采用了哪些手法?