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

167 阅读1分钟
  1. 观察者模式: 房地产中介在朋友圈发哪哪地铁口有房朝南大飘窗,他朋友圈要租房的人看到了这条朋友圈。

  2. 发布订阅模式: 有个房老五拎一串钥匙找到房地产中介要把自己哪几栋楼租出去,中介把房子信息发了条朋友圈,他朋友圈要租房的人看到了这条朋友圈。

这两种模式在概念上是相似的,最大的区别是观察者模式没有 中间商,其次还有:

  • 观察者模式双方都知道对方的存在;而发布订阅模式的发布者和订阅者不知道对方的存在,它们通过一个中间商来通信。

  • 观察者模式通信大多是同步的,当事件触发,Subject 就会通知 Observers。发布订阅模式通信大多是异步的(使用消息队列)。

  • 观察者模式组件紧密耦合,发布订阅模式组件松散耦合。

  • 观察者模式需要在单个应用程序地址空间中实现,而发布订阅模式更像交叉应用模式。