OBSERVER(观察者) 适用性: 1.当一个抽象模型有两个方面,其中一个方面依赖于另一个方面。将这二者封装在独立的对象中以是他们可以各自独立地改变和复用。 2.当对一个对象的改变需要同时改变其他对
FLYWEIGHT(享元) 意图: 运用共享技术有效地支持大量细粒度的对象。 适用性: 1.一个程序应用了大量的对象,造成很大的存储开销。 2.对象的大多数状态可变为外部状态。 3.如果删除对象的外部
MEDIATOR(中介者) 适用性: 1.一组对象以定义良好但是复杂的方式进行通信,产生相互依赖关系混乱且难以理解。 2.一个对象引用很多其他对象并且直接与这些对象通信,导致难以复用该对象。 3.想定
INTERPRETER(解释器) 适用性: 当有一个语言需要解释执行,并且你可以将语言中的句子表示为一个抽象语法树时,可使用解释器模式。 思考: 一个常见使用情况当然是操纵一种程序语言,例如JavaS
COMPOSITE(组合) 适用性: 1.想表示对象的部分整体层次结构 2.希望用户忽略组合对象和单个对象的不同。 思考: 组合模式的所有组件应该具备同一个接口。一直感觉,这种组合是一种递归组合的概念
Observer 模式 起源 Delphi中的Observer模式在基本Observer模式进行了扩展。更多Observer模式的资料请参 目的 定义一个对象间的一种一对多的依赖关系,当一
CHAIN OF RESPONSIBILITY(职责链) 适用性: 1.有多个对象可以处理统一请求,但是,那个对象处理要到运行时刻决定。 2.希望在不明确接收者的情况下,向多个对象中的一个提交一个请求
STRATEGY(策略) 适用性: 1.许多相关的类仅仅是行为有异。”策略“提供了一种用多个行为中的一个行为来配置一个类册方法。 2.需要使用一个算法的不同变体。 3.算法使用
目前设计模式的介绍性文章越来越多,但设计模式的研究性文章仍然比较欠缺,这着实让人觉得有点遗憾。本文旨在抛砖引玉,具体分析一下Java中jdk自带的observer设计模式(下文如没非凡指出,obs
observer模式定义对象间的一对多的依赖关系,当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新。JDK里提供的observer设计模式的实现由java.util.Observ