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

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

一、观察者模式

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

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

二、订阅-发布模式

其实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.ZE.Z认证作者
上一篇 2023年5月31日
下一篇 2023年5月31日

相关推荐

  • redis是怎么跟oracle结合使用的

    通过以下方式:一、Redis作为Oracle缓存;二、Redis作为Oracle消息队列;三、Redis作为Oracle分布式锁。Redis可以作为Oracle的缓存,将常用的数据放在Redis中进行缓存,可以减轻Oracle的负载,提高系统的响应速度。 一、Redis作为Oracle缓存 Redi…

    2023年5月31日
    76900
  • 如何建立质量管理体系

    建立质量管理体系的过程:1、组织发动与策划阶段;2、质量管理体系设计阶段;3、质量管理体系文件的编制阶段;4、质量管理体系试运行阶段;5、质量管理体系审核阶段。其中,在组织发动与策划阶段要贯标起动,领导决策,统一认识,做好各项工作。 1、组织发动与策划阶段 贯标起动,领导决策,统一认识,做好各项工作…

    2023年1月1日
    60300
  • 在云原生架构中实现自动伸缩的方法

    在云原生架构中实施自动伸缩途径涵盖:1、部署监控工具、2、定义伸缩策略、3、配置水平自动伸缩器、4、应用垂直自动伸缩、5、实行容器化应用伸缩、6、综合使用自动伸缩技术。监控工具测度应用及基础架构表现并提供数据以便自动伸缩系统作出决策。 一、部署监控工具 部署应用及系统监控工具对于云原生架构自动伸缩至…

    2023年12月28日
    18600
  • 为什么要用devops

    DevOps的实践能够促进软件交付的加速、增进产品质量、强化团队合作、优化资源利用。在说明这条核心理念的同时,需着重强调其中的加速软件交付过程这一点,因为它是实现快速响应市场变化和客户需求的关键。 DevOps结合了开发(Development)和运维(Operations)的流程,培养了一种文化和…

    2024年3月26日
    2400
  • 大B和小B有什么区别

    大B和小B的区别主要表现在:1、角色定位不同;2、商业行为不同;3、风险承受不同;总的来看,大B更倾向于在商业链条中扮演主导者的角色,具有更大的商业决策权力和风险承受能力,而小B则更多的是在大B的引导下运作,其商业决策权和风险承受能力相对较小。 一、角色定位不同 大B常指的是商业链条中的大品牌、大厂…

    2023年6月1日
    9.3K00
  • 手机oa办公需要下载什么软件

    手机oa办公需要下载:一、OA办公;二、云OA;三、智办公;四、智旦OA;五、企业微信。OA办公是一款集合数字办公的平台,可以开展多人一起工作,可以实时推送给员工办公信息,采用了创新的工作类型,开展多项办公功能。 一、OA办公 OA办公是一款集合数字办公的平台,可以开展多人一起工作,可以实时推送给员…

    2023年5月28日
    41400
  • DevOps如何提高自动化容器编排的负载均衡

    DevOps通过实施先进的容器编排策略、集成创新的负载均衡技术、采用多层次健康检查、利用智能路由选择与监控日志分析、保障系统稳定性与弹性,显著提升自动化容器编排的负载均衡能力。效果体现在自动响应负载变化、故障快速识别与恢复、资源优化分配等方面。特别是集成创新的负载均衡技术代表着最前沿的实践,这不仅涵…

    2024年1月18日
    14900
  • 项目背景与项目必要性的区别

    项目背景与项目必要性的区别有:1、定义与概念;2、内容要点;3、关键目的;4、描述方式;5、在项目文档中的位置;6、与其他部分的关系。首先,从定义与概念上来分析,项目背景和项目必要性虽然都是项目计划或提案的重要部分,但它们的核心内容和目的存在显著的差异。 1、定义与概念 项目背景:主要描述项目产生的…

    2023年7月30日
    1.2K00
  • 网络的带宽和信道的带宽有什么区别与联系

    区别是:1、表示的对象不同2、计算的方法不同3、单位不同4、作用不同。信道带宽表示信道能够达到的最大数据速率;信道包括模拟信道和数字信道。信号带宽表示信号频谱图可以观察到一个信号所包含的频率成分。 1、表示的对象不同 信道带宽表示信道能够达到的最大数据速率;信道包括模拟信道和数字信道。在模拟信道,带…

    2023年2月15日
    1.4K00
  • 开源软件和自由软件一样吗

    自由软件是指公共领域的开源许可。与自由软件运动不同,开源软件现在包含更多类型的许可,并且可以对用户施加一些限制。因为免费软件和自由软件这两个术语可以互换使用,所以较好将免费软件称为公共领域软件。 一、开源软件和自由软件一样吗? 自由软件一词是指一种社会运动,也称为自由软件运动,旨在为软件用户获得并保…

    2022年11月8日
    59000

发表回复

登录后才能评论
站长微信
站长微信
电话联系

400-800-1024

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

分享本页
返回顶部