`
haiyupeter
  • 浏览: 416812 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

对于设计模式的理解

    博客分类:
  • Util
阅读更多

        前几天,跟一同事学习,才猛然发现,自己以前写的代码都是垃圾。这个同事写代码的时候比较注重用及模式的应用!所以写出来的代码比较适用于扩展,也适用于理解,当然了,要快速理解别人的代码的话当然是要对设计模式比较熟悉。以前的自己真的没多少东西,看过的设计模式,从来没有在真正的编程中实际应用上过,都是靠感觉是就写代码了,这种情况往往导致需求变动时我们更改程序非常的痛苦。

        经过一个月的早上9点到晚上12点钟的加班历练后,猛然发现好好学习,好好看书,好好总结,好好分享,好好讨论,好好传授经验的重要。非常感谢在这一段时间的历练机会,希望这是一个转折。

        现在重新整理一下设计模式的理解,具体的模式的类图,请查看相关的书籍《Head First》或者是更简单的《大话设计模式》:

  1. 简单工厂模式(Factory):对某一相似操作(或者称算法)进行分类!适用于分类的场景,所有的分类场景都可以使用此模式进行分类。最常用的例子是什么呢?加减乘除的分类,商品打折分 类,购买蔬菜时按价格梯度进行分类等分类场景,除了在生活中,在实际的编程应用则需要举一反三了!心得:可以很好的进行分类,但每新增一类算法时需要改动原有的逻辑或者代码。
  2. 策略模式(Strategy):与简单工厂很相像!但它呢,对于用户而言,只需要了解一个类即可,而简单工厂模式必须要了解两个类。心得:将策略模 式与工厂模式结合后,则非常的美观,并且重用性也强,这也是我发现的唯一优点。在Java中,我们可以通过反射新建一个策略类的方式来作为工厂模式!个人觉得它无非是对工厂进行了简单的封装罢了!
  3. 观察者模式(Observer):主要为事件而设计,如:事件充当通知者的角色,把一批观察者挂在通知者上,通知者触发事件时调用每个观察者的监听事件。心得,每一个通知者和观察者都可以动态添加,而不影响现有的通知者和观察者。如写了ClickEvent和DbClickEvent,每一个Event下面挂了Observer对象,则在ClickEvent和DbClickEvent的调用notify()方法时,将Observer对象的相应方法都进行触发。
  4. 适配器模式(Adapter):通常是在逼不得已才用上,在双方改接口都很难的时候才进行,最好是重构统一他们的接口。
  5. 工厂方法(Factory Method):将工厂再具体抽象出来。相对于简单工厂,添加工厂类的时不需要修改原有的工厂类,符合对修改封闭,对扩展开放原则。          
  6. 抽象工厂方法(Abstract Factory) :将产品类再抽象出一层来,并且在具体的工厂类都依赖于这个类,但如果要新增加某一类产品时,除了新增的修改类,还要修改所有的工厂类。心得:事实上每一个工厂类的逻辑均是一样的,所以可以通过反射的方式,拿到类名每次去创建类即可,而无需要使用IFactory及其实现类。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
分享到:
评论
1 楼 mfkvfn 2012-02-23  
策略模式类似于互相隔离的“多例”模式。
抽象工厂方法可以理解为“系列”,即一个具体工厂创建同一系列的多个实例。要么创建A1,B1,C1的实例,要么创建A2,B2,C2的实例,不能创建A1,B2,C1这样的实例,因为它们不是一个系列的。

相关推荐

    几种设计模式的理解设计模式理解

    这个文档中有几种设计模式,是我自己总结出来的,希望对大家有用处呀。

    设计模式的理解浅析

    ● 在整个项目中需要一个共享访问点或共享数据,例如一个Web页面上的计数器,可以不用把每次刷新都记录到数据库中,使用单例模式保持计数器的值,并确保是线程安全的;

    最简单的理解设计模式

    最简单的理解设计模式,设计模式对比学习,设计模式特性分析

    java的设计模式.对java设计模式的理解.

    比较全面的介绍了,java的设计模式.帮助你的理解.

    设计模式课件大全

    设计模式02 设计模式03-创建型模式 设计模式04-创建型模式2 设计模式05-建造者、原型模式 设计模式06-适配器、桥接、组合模式 设计模式07-组合模式、装饰模式 设计模式09-外观模式、享元模式 设计模式10-代理模式、...

    设计模式之通俗理解

    设计模式你值得拥有

    设计模式 让你轻松理解设计模式,提高开发效率

    关于23种设计模式的有趣见解 让你轻松理解设计模式,提高开发效率

    设计模式精解-GoF 23种设计模式解析附C++实现源码

    写完了Interpreter模式之后,我习惯性的看看下一天的安排,却陡然发现GoF的23个设计模式的解析已经在我不经意间写完了。就像在一年前看GoF的《设计模式》一书,和半年前用C++模拟、实现23种经典的设计模式一般,透过...

    设计模式精解-GoF 23种设计模式解析附C++.pdf

    设计模式体现的是一种思想,而思想则是指导行为的一切,理解和掌握了设计模式,并不是说记住了23种(或更多)设计场景和解决策略(实际上这也是很重要的一笔财富),实际接受的是一种思想的熏陶和洗礼,等这种思想...

    《设计模式:可复用面向对象软件的基础》学习并理解 23 种设计模式

    《设计模式:可复用面向对象软件的基础》学习并理解 23 种设计模式

    基于Java的设计模式大作业绘图系统【六种设计模式+文档】.zip

    本系统基于六种设计模式,运用到的设计模式有备忘录模式,简单工厂模式,迭代器模式,状态模式,模版方法模式,单例模式。...使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。

    二十三种设计模式通俗理解

    二十三种设计模式,用一种通谷易懂,幽默风趣的方式,用生活话的语言,为您讲解二十三种 设计模式的应用原理

    深入浅出设计模式 完整扫描版

    《深入浅出设计模式》总结了许多系统软件在设计开发过程中的难点,力图将设计模式的实际应用与实现原理有机结合起来,破解软件开发人员在学习设计模式过程不能透彻理解并灵活运用设计模式的难题。  所有章节都是先...

    基于Java的设计模式理解与实现.pdf

    基于Java的设计模式理解与实现.pdf

    23种设计模式经典案例(C++版)

    使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代 码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的;设计模式使代码编制真正工程化。创建型模式 : 通常和对象的创建有关,涉及到对象实例化...

    设计模式原理 精髓分析

    本书是关于设计模式的精髓分析。...如果想从更本上理解设计模式的内涵,建议看此书。然后可以用多种语言实现,本人的另外一本关于C#的设计模式书籍,可以去下载。总之多锻炼,才能真正理解,否则是纸上谈兵!

    设计模式解析(第二版)

    阅读本书,读者能够完整地理解12个核心的设计模式和1个分析模式,了解设计模式并不是孤立存在的,多个设计模式协同工作才能创建出更加坚固的应用程序。这里所讲授的12个模式并没有涵盖所有应该学会的模式,但是理解...

    设计模式练习题

    有关设计模式的练习题。设计模式的分类。等相关的联系。学西设计模式必选习题。有助于加强对于设计模式的理解。

    使用设计模式改善程序结构

    仅知道设计模式是什么, 以及它是如何实现的是很不够的,因为那样就不能使你对于设计模式有真正的理解,也就不能够在自己的设 计中正确、恰当的使用设计模式。本文试图从另一个角度(设计模式的意图、动机)来看待...

    设计模式 23种设计模式PPT

    使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 简而言之,在我们处理大量问题时,在很多不同的问题中重复出现的一种性质,它使得我们可以使用一种方法来描述问题实质并用本质上相同,但...

Global site tag (gtag.js) - Google Analytics