JAVA 发布订阅者模式与观察者模式区别

JAVA 发布订阅者模式与观察者模式区别

一、发布订阅者模式

1、概念

订阅者把本身想订阅的事件注册到调度中心,当该事件触发时候,发布者发布该事件到调度中心(第三方),由调度中心统一调度订阅者注册到调度中心的处理代码。

2、优缺点

优势
(1)一对多。
一个发布者能够绑定多个订阅者,当事件触发时,由调度中心所有通知。

(2)解耦。
发布订阅者模式中,订阅者是不知道也不关心事件是为何触发,是由哪个事件触发,只知道事件触发时候,会告诉本身。发布者也不用一一通知,只要告诉调度中心,事件触发了就行了。因此代码松耦合。
(3)程序便于扩展。
缺点:
(1)实现方式麻烦

二、发布订阅者模式与观察者模式区别

  • 在观察者模式中,观察者是知道Subject的,Subject一直保持对观察者进行记录。然而,在发布订阅模式中,发布者和订阅者不知道对方的存在。它们只有经过调度中心进行通讯。
  • 在发布订阅模式中,组件是松散耦合的,正好和观察者模式相反。
  • 观察者模式大多数时候是同步的,好比当事件触发,Subject就会去调用观察者的方法。而发布-订阅模式大多数时候是异步的(使用消息队列)

 

posted @ 2022-08-15 11:27  整合侠  阅读(421)  评论(0编辑  收藏  举报