观察者模式 /发布-订阅(Publish/Subscribe)/模型-视图(Model/View)/源-监听器(Source/Listener)/从属者(Dependents) 模式
2017-03-21 03:30
573 查看
//典型的抽象目标类代码: using System.Collection; abstract class Subject { //定义一个观察者集合用于存储所有观察者对象 protected ArrayList observers = new ArrayList(); //声明抽象注册方法,用于向观察者集合中增加一个观察者 public abstract void Attach(Observer observer); //声明抽象注销方法,用于在观察者集合中删除一个观察者 public abstract void Detach(Observer observer); //声明抽象通知方法 public abstract void Notify(); } //典型的具体目标类代码: class ConcreteSubject : Subject { public override void Attach(Observer observer) { observers.Add(observer); } public override void Detach(Observer observer) { observers.Remove(observer); } //实现通知方法 public override void Notify() { //遍历观察者集合,调用每一个观察者的响应方法 foreach (object obs in observers) { ((Observer)obs).Update(); } } } //典型的抽象观察者代码: interface Observer { void Update(); } //典型的具体观察者代码: class ConcreteObserver : Observer { //实现响应方法 public void Update() { //具体更新代码 } } //典型的客户端代码片段: { Subject subject = new ConcreteSubject(); Observer observer = new ConcreteObserver(); subject.Attach(observer); subject.Notify(); }
相关文章推荐
- 设计模式初探-观察者模式(OBSERVER)又称发布-订阅(Publish-Subscribe)依赖(Dependents)
- 观察者模式(Observer)和发布(Publish/订阅模式(Subscribe)的区别
- 设计模式之观察者模式(发布-订阅模式publish/Subscribe)
- 设计模式---订阅发布模式(Subscribe/Publish)
- redis之发布与订阅(publish/subscribe模式)
- RabbitMQ消息分发模式----"Publish/Subscribe"发布/订阅模式
- 订阅发布模式(Subscribe/Publish)
- 订阅发布模式(Subscribe/Publish)
- redis之发布与订阅(publish/subscribe模式)
- 《dojo 边学边用》(04),发布/预订通信 ,dojo内置的观察者模式(dojo.publish 和 dojo.subscribe )
- WPF 应用程序使用程序的模型视图 ViewModel 设计模式
- RabbitMQ消息分发模式----"Publish/Subscribe"发布/订阅模式
- Publish/Subscribe Model——Notification chain——观察者模式
- 观察者模式(Observer)和发布(Publish/订阅模式(Subscribe)的区别
- 设计模式---订阅发布模式(Subscribe/Publish)
- 设计模式---订阅发布模式(Subscribe/Publish)
- Publish/Subscribe(发布/订阅)设计模式(Observer模式)
- 设计模式---订阅发布模式(Subscribe/Publish)
- WPF 应用程序使用程序的模型视图 ViewModel 设计模式 WVVM
- 观察者模式(Observer Pattern,对象行为型模式,发布-订阅模式 Publish/Subscribe Pattern)