将一个系统设计为一系列相互协作的类,往往也会带来一些副作用,类对象之间的一致性需要维护。
观察者模式定义了一种交互,即发布-订阅:
对象自身状态的改变,需要通知相关协作的类对象,这些对象称为观察者;作为对通知的响应,相关的观察者会对自身状态做出一定更新,以同步系统中状态的变化。 观察者模式定义了一种对象间一对多的依赖关系,使得当每一个对象自身状态发生改变时,相关的对象都将受到通知,并自身做出更新,以响应通知。
以上是观察者模式的类图,就具体实现上来说,如果改成一下结构,实现起来会更加方便一点,下面也贴出我自己修改的类图。 对于修改版,其中增加了Observable,负责维护订阅对象的vector,当Subject状态修改后,通知订阅对象,Subject则仅需保存Observable的对象指针即可。
新闻热点
疑难解答