摘要: using System;using System.Text;using System.Collections.Generic;namespace 状态模式{ /* * 状态模式意图:允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它所属的类。 * * 状态模式使用场景:1、当一个对象行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为时 * 2、状态的判断逻辑转移到表示不同状态的一系列类中,可以把复杂的判断逻辑简单化 * */ ///... 阅读全文
posted @ 2011-03-22 22:39 日月之明 阅读(427) 评论(0) 推荐(0) 编辑
摘要: using System;using System.Collections.Generic;using System.Text;namespace 中介者模式{ /* * 中介者模式意图:用一个中介者对象将一些列对象交互封装,从而降低这些对象间的耦合性并且可以独立地改变对象间的交互关系。 * * 中介者模式实现要点:1、添加中间对象(中介者)对需要交互的对象的行为进行管理 * 2、通过中介方法,实现对象间的交互,从而实现对象间交互的松散耦合。 * * 中介者... 阅读全文
posted @ 2011-03-22 22:38 日月之明 阅读(336) 评论(0) 推荐(0) 编辑
摘要: using System;using System.Collections.Generic;using System.Text;namespace 职责链模式{ /* * 职责链模式意图:是对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递请求,直道一个对象处理它为止。 * * 职责链模式使用场景:1、有多个对象可以处理一个请求,哪个对象处理该请求运行时刻自动确定 * 2、在不明确指定接受者的情况下,向多个对象中提交一个请求 * ... 阅读全文
posted @ 2011-03-22 22:38 日月之明 阅读(262) 评论(0) 推荐(0) 编辑
摘要: using System;using System.Text;using System.Collections.Generic;namespace 命令模式{ /* * 命令模式意图:见一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能 * * 命令模式优点:1、实现类间的解调,调用者与接收者角色之间没有任何依赖关系,调用者实现功能时只需调用Command抽象类的execute方法就可,而无需了解到底是哪个接受者执行 * 2、实现Command接口的具体命令对... 阅读全文
posted @ 2011-03-22 22:37 日月之明 阅读(341) 评论(0) 推荐(0) 编辑
摘要: using System;using System.Text;using System.Collections.Generic;namespace 模板方法模式{ /* * 模板方法的意图:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。Template Method使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤 * * 模板方法实现要点:1、Template Method调用的虚方法可以具有实现,也可以没有任何实现(抽象方法,纯虚方法),但一般推荐将它们设置为protected方法 * * 模板方法优点:1、封装不变部分... 阅读全文
posted @ 2011-03-22 22:37 日月之明 阅读(220) 评论(0) 推荐(0) 编辑
摘要: using System;using System.Collections.Generic;using System.Text;using System.Collections;namespace 解释器模式{ /* * 解释器模式意图:给定一个语言, 定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子。 * * 解释器模式使用场景:1、当一个语言需要解释执行,并且系统将该语言中的句子表示为一个抽象语法树时 * 2、语法的构建复杂,且语法相关的类层次庞大且难以管理,使用解释器模式构建语法... 阅读全文
posted @ 2011-03-22 22:36 日月之明 阅读(204) 评论(0) 推荐(0) 编辑
摘要: using System;using System.Text;using System.Collections.Generic;namespace 观察者模式{ /* * 观察者模式意图:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新。 * 观察者模式实现要点:1、需要在状态对象通知者建立容器,管理被通知对象 * 2、实现对容器进行管理 * 3、实现核心的更新方法 * ... 阅读全文
posted @ 2011-03-22 22:35 日月之明 阅读(299) 评论(0) 推荐(0) 编辑
摘要: using System;using System.Collections.Generic;using System.Text;using System.Collections;namespace 访问者模式{ /* * 访问模式意图:表示一个作用于某对象结构中的各个元素的操作。它可以在不改变各元素的类的前提下定义作用于这些元素的新的操作。 * * 访问模式实现要点:1、通过一个稳定的管理容器管理所要访问的元素 * * 访问者模式适用场景:1、当有一个效果上的密封类层次 * ... 阅读全文
posted @ 2011-03-22 22:34 日月之明 阅读(212) 评论(0) 推荐(0) 编辑
摘要: using System;using System.Text;using System.Collections.Generic;using System.Collections;namespace 迭代模式{ /* * 迭代模式意图:提供一种方法顺序访问一个聚合对象中各个元素, 而又不需暴露该对象的内部表示。 * * 迭代模式实现要点:1、迭代抽象:访问一个聚合对象的内容而无需暴露它的内部表示。 * 2、迭代多态:为遍历不同的集合结构提供一个统一的接口,从而支持同样的算法在不同的集合结构上进行 * ... 阅读全文
posted @ 2011-03-22 22:32 日月之明 阅读(273) 评论(0) 推荐(0) 编辑
摘要: using System;using System.Text;using System.Collections.Generic;namespace 策略模式{ /* * 策略模式意图:定义一系列算法,把它们一个个封装起来,并且使它们可互相替换。该模式使得算法可独立于使用它的客户而变化。 * * 策略模式实现要点:1、策略调用类中一般会包含一条或几条if或switch 语句,在这些语句中实现具体策略的调用 * 2、使用扩展方法,可以直接定义新的策略,而不依赖原来所支持的类 * ... 阅读全文
posted @ 2011-03-22 22:31 日月之明 阅读(252) 评论(0) 推荐(0) 编辑
摘要: using System;using System.Text;using System.Collections.Generic;namespace 备忘录模式{ /* * 备忘录模式意图:用一个中介者对象将一些列对象交互封装,从而降低这些对象间的耦合性并且可以独立地改变对象间的交互关系 */ ///<summary> /// ///</summary>publicclass Originator { privatestring state; publicstring State { ... 阅读全文
posted @ 2011-03-22 22:29 日月之明 阅读(1256) 评论(3) 推荐(0) 编辑