曾经读书的时候看过设计模式,当时只是看看罢了,没有想到要深入的学习,因为觉得学了也白学,一会儿就忘了。最近恰好有时间就重新看了看,于是记下了自己对学习DP的一点拙见。
GOF的23种设计模式仅仅告诉我们一些常用的代码设计方案,它是对前人良好代码的总结。设计模式是变幻莫测的,你可以创造它,也可改进它。设计模式的使用需要根据具体的情况而定。不能死读那23种模式(JDK中的代码还不止23种),为了模式而学。要将它看成读圣人的代码来看待。一句话,其实我们学习设计模式就是为了丢弃它,让我们自然而然的养成良好的代码设计习惯。
这样一说,设计模式是灵活的,不光这23种,还可以创造,那么学习它还有什么用?靠自己经验堆积呀!
对于代码设计良好的高人,可以说设计模式是没有必要学习的,因为他们的代码中已经体现了设计模式。但是对于初学者,设计模式的学习还是有好处的,模式是让我们养成良好的代码设计习惯,其实学习它就等于学习高人的代码,使我们受益匪浅。为我们少走弯路,节约了很多的时间。开始学习的时候,没有必要完完全全的把它们全部看明白,只需要知道各个模式是干什么的,想想自己写的代码是不是也存在过类似的问题,了解下它的某个实现。当遇到相关问题时,再找到那个模式,然后再搞懂它,最后用到你的设计当中去。深入学了几个模式过后,再对比下他们,有什么异同,各自的优点是什么。久而久之,我们就能设计出真正的面向对象的、可重用性高的、易维护扩展的代码来。
工作了1年,对于软件开发体会特别深,学到的多,同时觉得自己还有很多东西需要学习。在这几年的软件开发学习过程中,深深的体会到学习不仅仅要把知识学到,更重要的还是掌握良好的学习方法,这样才能举一反三。
下个星期就去新公司上班啦,祝福自己有个好的开始!一定发挥自己的水平。呵呵~~
以下为转载内容:
1 先理解概念,再学习原则
先理解OO的基本概念,比如:封装、继承、多态、组合/聚合、依赖等,理解各概念的内涵,弄清楚这些概念的具体实现方式及各实现方式的优缺点。
2 先学习原则,再学习模式
设计原则是蕴含在设计模式后最根本的思想,掌握了基本的设计原则可以做到不拘泥于某个具体的设计模式,可以更容易的理解设计模式,知道在何种情况下应该采用某种模式,可以自己创造合理的设计模式。设计原则可以参考的2本书籍是《敏捷软件开发》与《UML与模式应用》。
3 从责任分配的角度学习设计模式
责任驱动的思想是学习设计模式的很好的思想,通过给各个类合理的分配实现某个需求的责任来理解设计模式。
4 类图与交互图并重
不要仅仅关注类图,类图仅仅是表达了类之间的静态关系,而交互图表达了对象之间的动态关系,可以看到对象与对象是如何协作完成一项事务。
5 从重构到模式
设计模式是一种固定的设计套路,是基于实践总结出来的可复用的解决方案,是一种经验的总结结果,如果仅仅看到最终的结果往往无法体会其用意,通过不断对某个需求的实现方案进行重构,得到最终的设计模式,可以对设计模式的背后的思想理解的更深刻。
6 记住典型案例
通过类比,通过隐喻,通过记住某个典型案例,可以得到对设计模式的感性认识。
7 从客户的角度考虑如何使用
在理解设计模式时,一定要从使用这些类的客户的角度来考虑是如何使用的?这样可以更容易理解该模式是如何对客户来封装的,实现了哪些封装,为了实现这些封装,采用了哪些手法?
分享到:
相关推荐
在IT行业中,设计模式是软件开发中的重要概念,它代表了在特定情境下解决常见问题的最佳实践。这篇心得体会主要围绕...通过学习和应用设计模式,开发者可以更好地应对复杂系统的设计,同时也能提升个人的编程素养。
而且,争取的学习方法也不是了解所有的设计模式就可以无敌于天下。我所强调的学习方法就是在熟练掌握基本要素的基础上,了解大致的框架。这一条不仅是学习类库的方法,对设计模式来说是可行的。同时,切记的是在平时...
总的来说,"从哲学角度学习设计模式-抽象工厂"这个主题旨在将哲学思考融入到软件设计中,通过抽象工厂模式,我们不仅可以理解如何构建灵活、可扩展的系统,还能体会到哲学思想如何影响并指导我们的编程实践。...
设计模式的学习不仅仅是一个理论上的掌握,更需要通过实际项目中的应用来加深理解。 ### 1 创建型模式 创建型模式关注的是对象的创建机制,试图创建灵活的对象而不暴露创建逻辑。 - **1.1 Factory模式** ...
在实验报告中,我们需要说明使用Visio或Rose画UML图的心得体会,并分析总结各个创建型设计模式的特点和适用场合。例如,我们可以通过比较简单工厂模式和工厂方法模式,了解两者的区别和适用场合。又如,我们可以通过...
学习设计模式的过程可能会让人感到痛苦,尤其是在初读GoF的经典著作《设计模式:可复用面向对象软件的基础》时,面对大量抽象的概念和术语可能会感到困惑。然而,随着实践经验的积累,你会发现设计模式的强大之处,...
非常适合初学设计模式的人学习,因为大多数的人学习设计模式只是停留在理论阶段,但是实际上需要自己去写出具体的代码才能体会其中的精华思想的,所以我就写了着三个例子程序来帮助大家学习设计模式。 当然如果是...
为能和大家能共同探讨"设计模式",我将自己在学习中的心得写下来,只是想帮助更多人更容易理解 GoF 的《设计模式》。由 于原著都是以C++为例, 以Java为例的设计模式基本又都以图形应用为例,而我们更关心Java在中间件等...
通过阅读本书并结合实际项目的开发经验,可以深刻体会到设计模式在软件开发中的重要作用。设计模式不仅可以帮助开发者解决常见的设计问题,还可以提高代码的质量,使系统更易于扩展和维护。在实际工作中,掌握这些...
### 设计模式精解—GoF 23种设计模式解析及C++实现源码 #### 0. 引言 设计模式作为一种重要的面向对象设计工具,在软件...设计模式的学习是一个渐进的过程,随着经验的积累,我们将越来越能体会到它们的价值所在。
《HeadFirst设计模式》是一本深受开发者喜爱的设计模式学习书籍,以其独特的教学方式,通过丰富的图解和幽默的语言,使得复杂的设计模式概念变得易于理解。随书提供的源码是为了帮助读者更好地理解和应用这些模式,...
### 设计模式精解——GoF 23种设计模式解析 #### 0. 引言 设计模式作为面向对象编程的重要组成...因此,学习设计模式不仅仅是为了记住这23种模式,更重要的是理解它们背后的原理和思想,并将其应用到实际工作中去。
- 学习设计模式的同时,也要关注面向对象设计原则,如单一职责原则、开闭原则、里氏替换原则、依赖倒置原则和接口隔离原则。 总的来说,这个资源提供了对Java常用设计模式的实战经验和源码,是开发者提升技能、优化...
曾经在刚开始写项目的时候学习过设计模式,在开发过程中,也主动或者被动的使用过。现在写代码虽说不会特意明确在用哪种设计模式,但潜移默化的写出来公认的优秀实践代码,毕竟看的比较清爽。 引子 设计模式是很多...
通过《Java设计模式思想》这本书的学习,我们可以了解到设计模式是如何帮助我们编写出高质量的Java程序的。这些模式不仅能够提高代码的可读性和可维护性,还能让我们的设计更加灵活和易于扩展。无论是对于初学者还是...
这本书特别适合那些刚刚接触设计模式或者已经使用这些模式但想要更深入学习的初学者和专业人士。 书名中的“设计模式”指的是在软件工程中,针对软件设计中反复出现的问题的解决方案模板。设计模式的提出主要是为了...
自己学习Java的心得体会,以自己的方式总结 适合新手 快速操作新项目知识
设计模式的学习是一个渐进的过程,它要求开发者不仅要理解每个模式的概念,还要能够将其应用到实际的软件设计中。随着对模式理解的加深,开发者会逐渐体会到它们在解决具体问题时的价值。下面,我们将逐一介绍这23种...