观察者模式.pdf
《观察者模式.pdf》由会员分享,可在线阅读,更多相关《观察者模式.pdf(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1 目录 1.观察者模式(Observer Pattern).2 2.命令模式(Observer Pattern).6 2 1.观察者模式(Observer Pattern)1.1.描述:模式的定义和简单的具体描述 观察者模式定义了对象之间一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖他的对象都得到通知并自动更新。观察者模式中关键的对象是目标(Subject)和观察着(observer)。一个目标可以有任意数目的依赖它的观察者。一旦目标的状态发生改变,所有的观察者都得到通知。作为对这个通知的响应,每个观察者都查询目标以使其状态与目标状态同步。1.2.类图:模式的类图以及类图中每个类
2、的说明 Subject(目标):定义了 Suject 的接口,一般使用抽象类(C+)或者接口(JAVA)的方式实现。其中包含三个方法:Attach 方法用于加入 Observer,Dettach 的方法用于移除 Observer,Notify方法用于通知 Observer。Observer(观察者):3 定义了 Observer 的接口,与 Suject 类似,一般使用抽象类(C+)或者接口(JAVA)的方式实现。Update 方法用于更新 Observer 的显示。ConcreteSubject(具体目标):继承 Suject 抽象类(C+)或者实现了 Suject 接口(JAVA)的具体
3、Suject 类,负责保存注册的 Observer 以及在自身状态发生改变时通知 Observer 的具体实现。ConcreteObserver(具体观察者):继承 Observer 抽象类(C+)或者实现了 Observer 接口(JAVA)的具体 Observer类。保存所依赖的 Suject 对象的引用,并通过更新的方式保证自身的状态和所依赖的 Suject状态一致。1.3.实现演示代码:C+和 Java 都可以 简介:使用 Observer 模式实现以多种方式表示时间。4 Subject 抽象类 Observer 纯虚类 class Observer;class Subject pub
4、lic:virtual Subject();virtual void Attach(Observer *);virtual void Detach(Observer*);virtual void Notify();project:Subject();private:List _observer_list;void Subject:Attach(Observer*o)_observer_list.Append(o);void Subject:Detach(Observer*o)_observer_list.Remove(o);void Subject:Notify()List:iterator
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 观察者 模式
限制150内