发布订阅、观察者模式的区别是什么

发布订阅、观察者模式的区别是:发布订阅模式相比观察者模式多了个事件通道,事件通道作为调度中心,管理事件的订阅和发布工作,彻底隔绝了订阅者和发布者的依赖关系。即订阅者在订阅事件的时候,只关注事件本身,而不关心谁会发布这个事件。

一、观察者模式

观察者模式定义了对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知,并自动更新。观察者模式属于行为型模式,行为型模式关注的是对象之间的通讯,观察者模式就是观察者和被观察者之间的通讯。

观察者模式有一个别名叫“发布-订阅模式”,或者说是“订阅-发布模式”,订阅者和订阅目标是联系在一起的,当订阅目标发生改变时,逐个通知订阅者。我们可以用报纸期刊的订阅来形象的说明,当你订阅了一份报纸,每天都会有一份最新的报纸送到你手上,有多少人订阅报纸,报社就会发多少份报纸,报社和订报纸的客户就是上面文章开头所说的“一对多”的依赖关系。

二、订阅-发布模式

其实24种基本的设计模式中并没有发布订阅模式,上面也说了,他只是观察者模式的一个别称。

但是经过时间的沉淀,似乎他已经强大了起来,已经独立于观察者模式,成为另外一种不同的设计模式。

在现在的发布订阅模式中,称为发布者的消息发送者不会将消息直接发送给订阅者,这意味着发布者和订阅者不知道彼此的存在。在发布者和订阅者之间存在第三个组件,称为调度中心或事件通道,它维持着发布者和订阅者之间的联系,过滤所有发布者传入的消息并相应地分发它们给订阅者。

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

发布订阅模式相比观察者模式多了个事件通道,事件通道作为调度中心,管理事件的订阅和发布工作,彻底隔绝了订阅者和发布者的依赖关系。即订阅者在订阅事件的时候,只关注事件本身,而不关心谁会发布这个事件;发布者在发布事件的时候,只关注事件本身,而不关心谁订阅了这个事件。

观察者模式有两个重要的角色,即目标和观察者。在目标和观察者之间是没有事件通道的。一方面,观察者要想订阅目标事件,由于没有事件通道,因此必须将自己添加到目标(Subject) 中进行管理;另一方面,目标在触发事件的时候,也无法将通知操作(notify) 委托给事件通道,因此只能亲自去通知所有的观察者。

来源:https://blog.csdn.net/weixin_44786530/article/details/127091896

延伸阅读

项目管理工具的作用

项目管理工具是帮助项目团队有效计划、执行和管理项目的软件或系统。它们在提高项目执行效率,提高团队合作效果,及时识别并解决问题,以及确保项目成功实施中起到了关键作用。以下是项目管理工具的主要作用:

  1. 任务管理:项目管理工具允许您创建,分配和跟踪项目任务。你可以设置任务的优先级,截止日期,负责人等信息,以确保每个任务都得到适当的关注。
  2. 时间管理:大多数项目管理工具提供了日历或甘特图功能,可以帮助你规划项目时间表,跟踪关键里程碑,以及监控项目进度。
  3. 团队协作:项目管理工具通常提供了便于团队成员之间进行沟通和协作的功能,例如文件共享,讨论板,实时聊天等。
  4. 资源管理:通过项目管理工具,你可以更有效地管理和分配项目资源,如人力,设备,预算等。
  5. 风险和问题管理:项目管理工具可以帮助你识别,跟踪和解决项目中的风险和问题。
  6. 报告和分析:项目管理工具通常会提供强大的报告和分析功能,帮助你了解项目的当前状态,以及识别可能的问题和改进机会。

使用项目管理工具,可以提高项目管理的效率和效果,减少人为错误,提升团队合作,帮助你更好地达成项目目标。

文章标题:发布订阅、观察者模式的区别是什么,发布者:E.Z,转载请注明出处:https://worktile.com/kb/p/53565

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
E.Z的头像E.Z
上一篇 2023年5月31日
下一篇 2023年5月31日

相关推荐

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部