您的位置:首页 > 其它

【设计模式】——观察者

2017-05-14 21:40 176 查看
观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。生活中的例子,就是Foxmail订阅和邮件订阅等情况。
 
观察者模式提供了一种对象设计,让主题和观察者之间松耦合。
观察者与主题之间依赖于接口,主题不需要知道观察者的具体实现
可以动态添加删除观察者,对主题没有任何影响
新增新类型的观察者对主题没有影响,主题的代码不需要修改,而且旧的观察者也不受影响
观察者与主题都可以独立复用,因为是松耦合
只要约定的接口不改变,修改主题或观察者任何一方,都不会影响另一方
static void Main(string[] args)
{
//老板胡汉三
Boss huhansan = new Boss();

//看股票的同事
StockObserver tongshi1 = new StockObserver("魏冠超", huhansan);
//看NBA的同事
NBAObserver tongshi2 = new NBAObserver("易冠茶", huhansan);
huhansan.Attach(tongshi1);
huhansan.Attach(tongshi2);

huhansan.Detach(tongshi1);

//老板回来
huhansan.SubjectState = "我胡汉三回来了";
//发出通知
huhansan.Notify();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: