设计模式之一观察者模式
在平常得编程中,经常会用到观察者模式,属于使用场景很频繁得设计模式之一。
学习设计模式得目的,知道在何种场景中使用合适得设计模式。
以下我将从现实得场景出发去讲设计模式得运用,从比较中去看出优势
1.观察者模式得定义
目标状态发生变化得时候把他得信息通知给注册过得观察者们。
当一个对象改变需要同时通知其他对象,而且不知道具体要通知对象。
2.如何使用观察者模式
场景:在公司前台秘书需要在老板回来得时候给办公室得同事发出警告,让有些同事停止看股票,让有些同事停止看NBA。
subject:秘书,需要具有在老板回来时发出通知得方法,一个注册观察者得方法,一个装所有观察者得容器
obsever:抽象观察者,接受subject发出的通知并且处理
NBAObsever:看NBA同事,继承抽象观察者,具体观察者,停止看NBA得方法
StoketObsever:看股票得同事,继承抽象观察者,具体观察者,停止看股票得方法
具体代码(C#)
subject:
IObsever:
NBAObsever:
StocketObsever:
客户端调用代码:
运行结果:
如上,所有代码。
3.观察者模式得优势
观察者模式所做得工作其实在解耦合,让耦合得双方都依赖于抽象而不依赖于具体。
一方改变时不会影响另一方。