JAVA 发布订阅者模式与观察者模式区别
JAVA 发布订阅者模式与观察者模式区别
一、发布订阅者模式
1、概念
订阅者把本身想订阅的事件注册到调度中心,当该事件触发时候,发布者发布该事件到调度中心(第三方),由调度中心统一调度订阅者注册到调度中心的处理代码。
2、优缺点
优势
(1)一对多。
一个发布者能够绑定多个订阅者,当事件触发时,由调度中心所有通知。
(2)解耦。
发布订阅者模式中,订阅者是不知道也不关心事件是为何触发,是由哪个事件触发,只知道事件触发时候,会告诉本身。发布者也不用一一通知,只要告诉调度中心,事件触发了就行了。因此代码松耦合。
(3)程序便于扩展。
缺点:
(1)实现方式麻烦
二、发布订阅者模式与观察者模式区别
- 在观察者模式中,观察者是知道Subject的,Subject一直保持对观察者进行记录。然而,在发布订阅模式中,发布者和订阅者不知道对方的存在。它们只有经过调度中心进行通讯。
- 在发布订阅模式中,组件是松散耦合的,正好和观察者模式相反。
- 观察者模式大多数时候是同步的,好比当事件触发,Subject就会去调用观察者的方法。而发布-订阅模式大多数时候是异步的(使用消息队列)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
2018-08-15 jQuery事件
2018-08-15 jQuery:$(document).ready()用法
2018-08-15 jQuery选择器
2018-08-15 Python3.x:免费代理ip的批量获取并入库
2018-08-15 Python3.x:自动生成IP写入文本