观察者模式(observer)
2012-03-04 20:00
387 查看
观察者模式:定义对象间的一种一对多的关系,当一个对象的状态发生变化时,所有依赖于它的对象都得到通知并自动更新
先上图
废话不说,上代码
先上图
废话不说,上代码
class Program { //观察者模式 [əb'zə:və, ɔb-] static void Main(string[] args) { ConcreteSubject s = new ConcreteSubject(); s.Attach(new ConcreteObserver(s, "a")); s.Attach(new ConcreteObserver(s, "b")); s.Attach(new ConcreteObserver(s, "c")); s.SubjectState = "run"; s.Notify(); Console.Read(); } //抽象观察者 abstract class Observer { public abstract void Update(); } //抽象通知者 abstract class Subject { IList<Observer> listObserver = new List<Observer>(); public void Attach(Observer observer) { listObserver.Add(observer); } public void Detach(Observer observer) { listObserver.Remove(observer); } public void Notify() { foreach (Observer o in listObserver) { o.Update(); } } } //具体通知者 class ConcreteSubject : Subject { public string SubjectState { get; set; } } //具体观察者 class ConcreteObserver : Observer { private string name; private string observerState; private ConcreteSubject subject; public ConcreteSubject Subject { get{return subject;} set{subject=value;} } public ConcreteObserver(ConcreteSubject subject, string name) { this.subject = subject; this.name = name; } public override void Update() { observerState = subject.SubjectState; Console.Write("observer {0} is state {1} \n ", name, observerState); } } }
相关文章推荐
- java设计模式(3) - 观察者模式(Observer)
- 【设计模式 - 19】之观察者模式(Observer)
- 设计模式(Design Pattern) - 行为型模式(Behavioral Pattern) - 观察者模式(Observer) - Java实现
- 行为型模式:Observer 观察者模式
- (设计模式)观察者模式Observer-java
- 转载:C++设计模式之Observer(观察者)模式 http://www.cnblogs.com/chain2012/archive/2011/01/24/1943322.html
- 设计模式18 - Observer 观察者模式
- 设计模式之观察者模式(Observer)
- Observer,Observable实现观察者模式
- 观察者模式 The Observer Pattern
- 16.Observer-观察者模式
- Java观察者模式(Observer模式)
- 观察者模式(Observer)
- 【设计模式】行为型模式—— 观察者模式(Observer)
- 13.Javascript设计模式之观察者模式----Observer
- 深入JDK源码之Observer接口和Observable类实现观察者模式
- 【CDP-云设计模式】第8章,3.工作观察者模式(Job Observer Pattern)
- 行为设计模式---观察者模式(Observer)
- 观察者模式 Observer
- 观察者Observer模式C++实现