风言枫语  

设计模式的概念最早起源于建筑设计大师Alexander的《建筑的永恒方法》一书,尽管Alexander的著作是针对建筑领域的,但是他的观点实际上用用于所有的工程设计领域,其中也包括软件设计领域。在《建筑的永恒方法》一书中是这样描述模式的:

模式是一条由三个部分组成的通用规则:他表示一个特定环境、一类问题和一个解决方案之间的关系。每一个模式描述了一个不断重复发生的问题,以及该问题解决方案的核心设计。

软件领域的设计模式也有类似的定义:设计模式是对处于特定环境下,经常出现的某类软件开发的问题的一种相对成熟的设计方案。

所有资深软件设计师,他们积累了足够的经验,这些经验可以让他们快速、优雅地解决软件设计开发中的大量重复问题。而设计模式的最终目的就是帮助人们利用软件设计师的集成经验,从而设计出更加优秀的软件。

当然,写此文只是记录本人学习设计模式过程中的一点感悟,希望对读者有所帮助。实际上,设计模式的理解必须建立以足够的代码积累量作为基础。

根据Erich Gamma,Richard Helm,Ralph Johnson,John Vlissides几个软件设计模式的奠基人的说法,设计模式常常被分成如下三类:

 创建型模式 :创建对象时,不再由我们直接实例化对象,而是根据特定场景,由程序来确定创建对象的方式,从而保证更大的性能、更好的架构优势。

 

  1.      抽象工厂模式(AbstractFactory)
  2.       工厂方法模式(FactoryMethod)
  3.       单例模式(Singleton)
  4.       创建者模式(Builder)
  5.       原型模式(Prototype)
     结构性模式:用于帮助将多个对象组织成更大的结构。
  1.       适配器模式(Adapter)
  2.       桥接模式(Bridge)
  3.       组合模式(Composite)
  4.       装饰模式(Decorator)
  5.       外观模式(Facade)
  6.       享元模式(Flyweight)
  7.       代理模式(Proxy)
   行为型模式:用于帮助系统间各对象的通信,以及如何控制复杂系统中的流程。
  1.       责任链模式(Chain of Responsibility)
  2.       命令模式(Command)
  3.       解释器模式(Interpreter)
  4.       迭代器模式(Iterator)
  5.       中介者模式(Mediator)
  6.       备忘录模式(Memento)
  7.       状态模式(State)
  8.       策略模式(Strategy)
  9.       模板方法模式(TemplateMethod)
  10.       观察者模式(Observer)
  11.       访问者模式(Visitor)

 

下面看一张本人用思维导图软件做的设计模式的总概况图:

 

 

==================================================================================================

  作者:欧阳鹏  欢迎转载,与人分享是进步的源泉!

  转载请保留原文地址http://blog.csdn.net/ouyang_peng

==================================================================================================

 

posted on 2013-10-15 18:36  风言枫语  阅读(147)  评论(0编辑  收藏  举报