CHAIN OF RESPONSIBILITY(职责链) 适用性: 1.有多个对象可以处理统一请求,但是,那个对象处理要到运行时刻决定。 2.希望在不明确接收者的情况下,向多个对象中的一个提交一个请求
Chain of Responsibility定义 Chain of Responsibility(CoR) 是用一系列类(classes)试图处理一个请求request,这些类之间是一个松散
描述: 责任链模式(CoR)建议发出请求的对象与可能处理这个请求的对象集合之间是低耦合的(set of potential request handler objects)。
STRATEGY(策略) 适用性: 1.许多相关的类仅仅是行为有异。”策略“提供了一种用多个行为中的一个行为来配置一个类册方法。 2.需要使用一个算法的不同变体。 3.算法使用
OBSERVER(观察者) 适用性: 1.当一个抽象模型有两个方面,其中一个方面依赖于另一个方面。将这二者封装在独立的对象中以是他们可以各自独立地改变和复用。 2.当对一个对象的改变需要同时改变其他对
MEDIATOR(中介者) 适用性: 1.一组对象以定义良好但是复杂的方式进行通信,产生相互依赖关系混乱且难以理解。 2.一个对象引用很多其他对象并且直接与这些对象通信,导致难以复用该对象。 3.想定
INTERPRETER(解释器) 适用性: 当有一个语言需要解释执行,并且你可以将语言中的句子表示为一个抽象语法树时,可使用解释器模式。 思考: 一个常见使用情况当然是操纵一种程序语言,例如JavaS
FLYWEIGHT(享元) 意图: 运用共享技术有效地支持大量细粒度的对象。 适用性: 1.一个程序应用了大量的对象,造成很大的存储开销。 2.对象的大多数状态可变为外部状态。 3.如果删除对象的外部
COMPOSITE(组合) 适用性: 1.想表示对象的部分整体层次结构 2.希望用户忽略组合对象和单个对象的不同。 思考: 组合模式的所有组件应该具备同一个接口。一直感觉,这种组合是一种递归组合的概念
Strategy模式 起源 Delphi的STRATEGY模式是在STRATEGY的基础上进行了扩展。更多STRATEGY模式的资料请参阅 《设计模式208页》 目的 定义一