观察者模式:
- 没有一个调度中心,直接由被观察者触发观察者的
update
方法; - 观察者和被观察者抽象耦合,但观察者只知道被观察者发生了变化,不知道是怎么变化的;
- 一个抽象类Observer,两个角色Subject被观察者、Client观察者;
- 观察者Client实现Observer的
update
方法,被观察者Subject实现notify
方法,Subject中状态改变的时候调用notify
触发Client的update
。
发布订阅模式:
- 有个统一的调度中心;
- 发布者和订阅者通过调度中心解耦;
- 发布者可以自行决定调用哪些订阅者。