设计模式观察者模式.pptx
《设计模式观察者模式.pptx》由会员分享,可在线阅读,更多相关《设计模式观察者模式.pptx(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、大纲w观察者模式概述w观察者模式的结构与实现w观察者模式的应用实例w观察者模式与.NET中的委托事件模型w观察者模式与MVCw观察者模式的优缺点与适用环境第1页/共28页观察者模式概述交通信号灯与汽车示意图第2页/共28页观察者模式概述分析交通信号灯 观察目标汽车(汽车驾驶员)观察者一一对对多多第3页/共28页观察者模式概述分析软件系统:一个对象的状态或行为的变化将导致其他对象的状态或行为也发生改变,它们之间将产生联动观察者模式:定义了对象之间一种一对多的依赖关系,让一个对象的改变能够影响其他对象发生改变的对象称为观察目标,被通知的对象称为观察者一个观察目标可以对应多个观察者第4页/共28页观
2、察者模式概述观察者模式的定义对象行为型模式观观察察者者模模式式:定义对象之间的一种一一对对多多依依赖赖关关系系,使得每当一一个个对对象象状状态态发发生生改改变变时,其相关依赖对象都都得得到到通通知知并被自动更新并被自动更新。Observer Pattern:Define a one-to-many dependency between objects so that when one object changes state,all its dependents are notified and updated automatically.第5页/共28页观察者模式概述观察者模式的定义别名发布
3、-订阅(Publish/Subscribe)模式模型-视图(Model/View)模式源-监听器(Source/Listener)模式从属者(Dependents)模式第6页/共28页观察者模式的结构与实现观察者模式的结构第7页/共28页观察者模式的结构与实现观察者模式的结构观察者模式包含以下4个角色:Subject(目标)ConcreteSubject(具体目标)Observer(观察者)ConcreteObserver(具体观察者)第8页/共28页观察者模式的结构与实现观察者模式的实现典型的抽象目标类代码:using System.Collectionabstract class Subj
4、ect /定义一个观察者集合用于存储所有观察者对象定义一个观察者集合用于存储所有观察者对象protected ArrayList observers=new ArrayList();/声明抽象注册方法,用于向观察者集合中增加一个观察者声明抽象注册方法,用于向观察者集合中增加一个观察者 public abstract void Attach(Observer observer);/声明抽象注销方法,用于在观察者集合中删除一个观察者声明抽象注销方法,用于在观察者集合中删除一个观察者 public abstract void Detach(Observer observer);/声明抽象通知方法声明
5、抽象通知方法 public abstract void Notify();第9页/共28页观察者模式的结构与实现观察者模式的实现典型的具体目标类代码:class ConcreteSubject:Subjectpublic override void Attach(Observer observer)observers.Add(observer);public override void Detach(Observer observer)observers.Remove(observer);/实现通知方法实现通知方法public override void Notify()/遍历观察者集合,调用
6、每一个观察者的响应方法遍历观察者集合,调用每一个观察者的响应方法foreach(object obs in observers)(Observer)obs).Update();第10页/共28页观察者模式的结构与实现观察者模式的实现典型的抽象观察者代码:interface Observervoid Update();第11页/共28页观察者模式的结构与实现观察者模式的实现典型的具体观察者代码:class ConcreteObserver:Observer /实现响应方法实现响应方法public void Update()/具体更新代码具体更新代码第12页/共28页观察者模式的结构与实现观察者模
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 设计 模式 观察者
限制150内