1.概念
观察者模式(又被称为发布-订阅(Publish/Subscribe)模式,属于行为型模式的一种,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态变化时,会通知所有的观察者对象,使他们能够自动更新自己。
2.理解
观察者模式定义了一种一对多的关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己或干一件事。按照常规思路,作为监听者会主动用循环不停获取被监听对象的状态,效率低,如果有多个监听者,效率会更低。于是,反其道而行之,让被监听者主动去告知监听者,监听者反而变成了被动,被监听者维护监听者列表,实现动态添加删除监听者。当然为了可扩展性,要用接口(java/c#)或者虚基类(c++)实现。OO原则还是要遵守的。