事件总线
2018-08-16 本文已影响0人
android小菜鸡一枚
Android应用开发中,经常会涉及Activity,Fragment,Service等不同组件或者模块之间的消息传递,传统的方式会让不同组件和模块之间耦合严重。
事件总线就是用来简化Android应用中组件或者模块间的通信,从而实现模块间解耦的目的。基于观察者模式,它使用发布订阅的方式支持组件和模块间的通信,摒弃了观察者模式需要显式注册回调的缺点。
- 事件Event:一个普通的POJO类,之包含数据,不包含对数据的操作。
- 订阅者Subscriber:订阅某种类型事件的对象,通常会有一个回调函数用于对接收到的事件进行处理,订阅者可以订阅事件,也可以取消订阅的事件。
- 发布者Publisher:事件的源头,发布某种类型事件的对象。
- 总线EventBus: 负责订阅者,事件等信息的存储,同时处理事件的流动和分发,通过总线,订阅者和发布者是解耦的,互相不知道对方的存在。
EventBus
《Android高级进阶》第18章 观察者模式的扩展: 事件总线