发布订阅模式和观察者模式的区别

143 阅读1分钟

废话不多说,直接上图

目标
订阅目标
触发事件
观察者
观察者模式
发布者
发布消息
调度中心
订阅
触发事件
订阅者
发布订阅模式

从图中看出:

  1. 观察者模式中目标(也可以说是发布者)是直接与观察者(也可以说是订阅者)直接进行通信的。也就是说观察者需要直接订阅目标事件;在目标发出内容改变的事件后,直接接收事件并作出响应。

  2. 发布订阅模式中存在一个调度中心,由调度中心进行统一处理的,发布者与订阅者就不存在直接联系,以此避免发布者和订阅者之间产生依赖关系,算是一方面的解耦。我们可以在调度中心去做一些处理,比如权限控制,节流等操作。