【EventBus】发布-订阅模式 ( EventBus 组成模块 | 观察者模式 )

举报
韩曙亮 发表于 2022/01/13 23:06:52 2022/01/13
【摘要】 文章目录 一、发布-订阅模式二、EventBus 组成模块三、观察者模式 一、发布-订阅模式 发布订阅模式 : 发布者 Publisher : 状态改变时 , 向...





一、发布-订阅模式



发布订阅模式 :

  • 发布者 Publisher : 状态改变时 , 向 消息中心 发送事件 ;
  • 订阅者 Subscriber :消息中心 订阅自己关心的事件 ;
  • 消息中心 : 负责维护一个 消息队列 , 根据 消息类型 将 消息 转发给 对应的 订阅者 ;

在这里插入图片描述





二、EventBus 组成模块



EventBus 中有以下几个组成部分 :

  • Publisher 发布者 : 调用 post 方法发布事件 ;
  • EventBus 事件总线 : 该模块接收 发布者发布的事件 , 将事件转发给对应的 Subscriber 订阅者 ;
  • Subscriber 订阅者 : 使用 @Subscriber 注解修饰 , 接收发布的事件 , 并处理事件 ;
  • Event 事件 : 自定义类型 , 通过不同的事件类型 , 确定事件应该发送给哪个订阅者 ;

在这里插入图片描述

EventBus 是 发布 - 订阅 模式 的事件总线框架 , 事件的 发布者订阅者 实现了解耦 , 简化了 Android 中各个组件之间的通信 ;





三、观察者模式



观察者模式中 , 目标对象 ( Subject / 被观察者 ) 中 , 维护了多个 观察者 , 观察者需要注册到 目标对象 中 , 如果目标对象发生改变 , 通知所有的观察者 , 观察者对象 收到通知后 , 进行相关处理 ;

在这里插入图片描述

上述结构中 , 观察者目标对象 ( 被观察者 ) 是有 耦合性 的 ;

发布 - 订阅 模式 中 , 发布者 和 订阅者 是完全解耦的 ;

发布 - 订阅 模式 比 观察者模式 多了一个消息中心 , 这个 消息中心 是 发布者 和 订阅者 之间解耦的关键 ;

文章来源: hanshuliang.blog.csdn.net,作者:韩曙亮,版权归原作者所有,如需转载,请联系作者。

原文链接:hanshuliang.blog.csdn.net/article/details/120429329

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。