您的位置:首页 > 其它

观察者模式

2015-10-13 00:42 162 查看

定义

观察者模式,顾名思义就是观察者对某事物进行观察,当事物状态改变(符合条件)时,通知所有的订阅者,使他们做出对应的反应。

一般可以通过类之间的引用调用来实现、也可以通过事件订阅的方式实现。

类实现方式的类图

public delegate void NotifyHandler();
public class Subject
{
public string State { get; set; }
}
public class Notifier
{
public event NotifyHandler Nofify;
private Subject subject = null;
public Notifier(Subject subject )
{
this.subject=subject;
}
public void OnChangeState(string state)
{
subject.State = state;
if (Nofify != null)
{
Nofify();
}
}
}
public class Observer
{
public Observer(Notifier notifier)
{
notifier.Nofify += notifier_Nofify;
}

void notifier_Nofify()
{
//TODO...reflect
}


View Code

总结

观察者模式,着重于条件触发点到达时对一类对象进行通知,已达到广播通知的效果。

关于类实现、还是事件订阅方式的实现,主要看功能业务,事件订阅方式简化了代码,同时也比较明了。而类实现则增加了耦合,并且要求订阅者有统一基类或者接口,但定义类的功能有时可以照顾到其他的业务实现。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: