观察者模式:
有时被称作发布/订阅模式。
观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。
这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。
Subject:抽象的主题,被观察的对象
ConcreteSubject:具体的被观察对象
Observer:抽象的观察者,定义一个发送变化通知更新的接口。
ConcreteObserver:维持一个对ConcreteSubject对象的引用。
public abstract class Observer
{
public abstract void Update();
}
public abstract class Subject
{
private List<Observer> _observers = new List<Observer>();
public void Attach(Observer observer)
{
_observers.Add(observer);
}
public void Detach(Observer observer)
{
_observers.Remove(observer);
}
public void Notify()
{
foreach (Observer o in _observers)
{
o.Update();
}
}
}
public class ConcreteObserver : Observer
{
public override void Update()
{
Console.WriteLine("");
}
}
public class ConcreteSubject : Subject
{
}