观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。
示例代码:
// 主题接口
public interface ISubject
{
void RegisterObserver(IObserver o);
void RemoveObserver(IObserver o);
void NotifyObservers();
}
// 观察者接口
public interface IObserver
{
void Update(string message);
}
// 具体主题
public class ConcreteSubject : ISubject
{
private List<IObserver> _observers = new List<IObserver>();
private string _state;
public void RegisterObserver(IObserver o)
{
_observers.Add(o);
}
public void RemoveObserver(IObserver o)
{
_observers.Remove(o);
}
public void NotifyObservers()
{
foreach (var observer in _observers)
{
observer.Update(_state);
}
}
public void SetState(string state)
{
_state = state;
NotifyObservers

最低0.47元/天 解锁文章
800

被折叠的 条评论
为什么被折叠?



