码迷,mamicode.com
首页 > 其他好文 > 详细

小菜学设计模式——设计模式总结之行为型(2)

时间:2015-07-10 15:30:41      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:

1、设计模式总结

    设计模式总共23个,但是常用的不到10个,下面就把这23个设计模式进行整理归类,具体如下:

    1)创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。

    2)结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。

    3)行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代器模式、职责链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式

2、行为型设计模式

    1)备忘录模式:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可以将该对象恢复到原先保存的状态。

    备忘录模式可以避免暴露一些只应由对象A管理却又必须存储在对象A之外的信息。备忘录模式把可能很复杂的对象A的内部信息对其他对象屏蔽起来,从而保持了封装边界。


    2)状态模式:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。

    状态模式提供了一个更好的办法来组织与特定状态相关的代码,决定状态转移的逻辑不在的单块的if或switch当中,而是分布在各个状态子类之中,由于所有与状态相关的代码都存在于某个状态子类中,所以通过定义新的子类可以很容易地增加新的状态和转换。

    3)访问者模式:表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素类的前提下定义作用于这些元素的新操作。

    访问这种增加具体的Element是困难的,但增加依赖于赋值对象结构的构件操作就变得容易。仅需要增加一个新的访问者即可在一个对象结构上定义一个新的操作。如果你还记得那个男人和女人的状态,你们你就会知道Element就是男人和女人,那么这种结构一旦确定是很难更改的,但是你却可以新增访问者,比如结婚、生子等新的操作。

    4)中介者模式:用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显示地相互引用,从而使其耦合松散,而且可以独立地改变他们之间的交互。

    将集体行为封装一个单独的中介者对象来避免大量对象相互连接的问题,中介者负责控制和协调一组对象间的交互。中介者充当一个中介以时组中对象不再相互显示引用。这些对象仅仅知道中介者,从而减少相互连接是数目。其实是迪米特原则(最少知识原则)的充分体现。

    5)解释器模式:给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。

    如果一个特定类型的问题发生频率足够高,那么就可以考虑将该问题的各个实例表述为一个简单语言中的句子,也就是说通过构建一个解释器,该解释器解释这些句子来解决该问题。


小菜学设计模式——设计模式总结之行为型(2)

标签:

原文地址:http://my.oschina.net/heweipo/blog/476976

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!