EventBus发布-订阅模式 ( EventBus 组成模块 | 观察者模式 )
Posted 韩曙亮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EventBus发布-订阅模式 ( EventBus 组成模块 | 观察者模式 )相关的知识,希望对你有一定的参考价值。
一、发布-订阅模式
发布订阅模式 :
- 发布者 Publisher : 状态改变时 , 向 消息中心 发送事件 ;
- 订阅者 Subscriber : 到 消息中心 订阅自己关心的事件 ;
- 消息中心 : 负责维护一个 消息队列 , 根据 消息类型 将 消息 转发给 对应的 订阅者 ;
二、EventBus 组成模块
EventBus 中有以下几个组成部分 :
- Publisher 发布者 : 调用
post
方法发布事件 ; - EventBus 事件总线 : 该模块接收 发布者发布的事件 , 将事件转发给对应的
Subscriber
订阅者 ; - Subscriber 订阅者 : 使用
@Subscriber
注解修饰 , 接收发布的事件 , 并处理事件 ; - Event 事件 : 自定义类型 , 通过不同的事件类型 , 确定事件应该发送给哪个订阅者 ;
EventBus 是 发布 - 订阅 模式 的事件总线框架 , 事件的 发布者 与 订阅者 实现了解耦 , 简化了 android 中各个组件之间的通信 ;
三、观察者模式
观察者模式中 , 目标对象 ( Subject / 被观察者 ) 中 , 维护了多个 观察者 , 观察者需要注册到 目标对象 中 , 如果目标对象发生改变 , 通知所有的观察者 , 观察者对象 收到通知后 , 进行相关处理 ;
上述结构中 , 观察者 与 目标对象 ( 被观察者 ) 是有 耦合性 的 ;
发布 - 订阅 模式 中 , 发布者 和 订阅者 是完全解耦的 ;
发布 - 订阅 模式 比 观察者模式 多了一个消息中心 , 这个 消息中心 是 发布者 和 订阅者 之间解耦的关键 ;
以上是关于EventBus发布-订阅模式 ( EventBus 组成模块 | 观察者模式 )的主要内容,如果未能解决你的问题,请参考以下文章
EventBus发布-订阅模式 ( EventBus 组成模块 | 观察者模式 )
EventBus发布-订阅模式 ( Android 中使用 发布-订阅模式 进行通信 )