09 2011 档案

二十二.行为型设计模式——Observer Pattern(观察者模式)
摘要:定义: 定义对象间的一种一对多依赖关系,使得每当一个对象改变状态,则其相关依赖对象皆得到通知并被自动更新。 UML类图如下: 其中类和对象的关系为: 1.Subject(被观察对象):了解其多个观察者,任意数量的观察者可以观察一个对象;提供一个接口用来缚定(attaching)及分离(detaching)观察者对象。 2.ConcreteSubject(具体被观察对象):储存具体观察者(ConcreteObserver)有兴趣的状态;当其状态改变时发送一个通知给其所有的观察者对象。 3.Observer(观察者):定义一个更新(updating)接口,在一个被观察对象改变时应被... 阅读全文

posted @ 2011-09-27 23:13 tLEE 阅读(1251) 评论(0) 推荐(0)

二十一.行为型设计模式——Memento Pattern(备忘录模式)
摘要:定义: 在不破坏封装的前提下,捕获并且保存一个对象的内部状态,这样可以将对象恢复到原先保存的状态。 UML类图如下: 其中类和对象的关系为: 1.Memento(备忘录):保持Originator(原发器)的内部状态,根据原发器来决定保存哪些内部的状态;保护原发器之处的对象访问备忘录,备忘录可以有效地利用两个接口,看管者只能调用狭窄(功能有限)的接口——它只能传递备忘录给其他对象,而原发器可以调用一个宽阔(功能强大)的接口,通过这个接口可以访问所有需要的数据,使原发器可以返回先前的状态,理想的情况是,只允许生成本备忘录的那个原发器访问本备忘录的内部状态。 2.Originat... 阅读全文

posted @ 2011-09-26 23:38 tLEE 阅读(412) 评论(0) 推荐(0)

二十.行为型设计模式——Mediator Pattern(中介者模式)
摘要:定义 定义一个对象封装一系列多个对象如何互相作用。Mediator中介者使得对象之间不需要显示地互相引用,从而使得其耦合更加松散。并且还让我们可以独立变化多个对象的互相作用。 UML类图如下: 其中类和对象的关系为: 1.Mediator(抽象中介者):定义一个接口用于与各同事对象(Colleague)之间的通信。 2.ConcreteMediator(具体中介者):协调各个同事对象实现协作的行为;掌握并且维护它的各个同事对象引用。 3.Colleague(同事类):每一个同事对象都引用一个中介者对象;每一个同事对象在需要和其他同事对象通信时,就与它的中介者通信。 典型应... 阅读全文

posted @ 2011-09-23 23:50 tLEE 阅读(406) 评论(0) 推荐(0)

十九.行为型设计模式——Iterator Pattern(迭代器模式)
摘要:定义 提供一种方法可以访问聚合对象,而不用暴露这个对象的内部表示。 UML类图如下: 其中类和对象的关系为: 1.Iterator(迭代器):迭代器定义访问和遍历元素的接口。 2.ConcreteIterator(具体迭代器):实现迭代器的接口;在遍历时跟踪当前聚合对象中的位置。 3.Aggregate(聚合):定义一个创建迭代器对象的接口。 4.ConcreteIterator(具体聚合):实现创建迭代对象,返回一个具体迭代器的实例。 典型应用的顺序图如下: 实例1——遍历例子: 下面的遍历例子延时了迭代器模式的应用。例子采用迭代来遍历集合中的子项目,定义了迭... 阅读全文

posted @ 2011-09-21 23:46 tLEE 阅读(546) 评论(0) 推荐(0)

十八.行为型设计模式——Interpreter Pattern(解释器模式)
摘要:定义 给出一种语言,定义这种语言的文法的一种表示,定义一个解释器,用它来解释使用这种语言的句子。 UML类图如下: 其中类和对象之间的关系为: 1.AbstractExpression(抽象表达式类):定义一个接口来执行解释操作。 2.TerminalExpression(终结符表达式):实现文法中管理终结符的解释操作;文句中的每个终结符都需要一个实例。 3.NonterminalExpression(非终结符表达式):文法中的每一条规则R::=R1R2....Rn都需要一个非终结符表达式类;维护每一条规则R1到Rn具有AbstractExpression接口实例;实现文法中关... 阅读全文

posted @ 2011-09-20 00:20 tLEE 阅读(672) 评论(0) 推荐(0)

导航