EventBus
- 简化组件间(例如 Activity 与 Activity 之间)的通信
- 在组件通信上能使代码尽量简化
- 快且小
- 已超 10 亿的安装使用量
- 提供了更高级的功能,例如线程间通信,事件订阅优先级等
如何使用
- 定义事件
- 声明观察者(即声明观察者更新方法)
- 注册观察者声明周期(一般会结合组件生命周期做注册与解注)
- post 事件(即发送事先定义的事件用于通信)
虽说用起来确实方便,不过缺点也很明显。由于简洁的代码实现,导致组件间事件通信的关联性变的很弱,例如对于某个 Activity 监听的事件,并不好知道事件触发来源在哪个地方,甚至是哪些地方。一旦事件多了,代码就会变的不好维护。
我的想法是,首先,EventBus 虽好,但不能贪杯,尽量作为备选方案使用。其次,从代码规范上着手。事件应统一维护在一处,例如专门用一个包来管理。并且在事件监听的方法上增加注释表明事件的来源有哪些。毕竟代码是写给人看的,良好的代码规范同样也是基本功扎实的体现。
网友评论