总结
1、优点
Eventbus采用的就是我们熟悉的观察者模式,我们在项目中也经常会采用这种模式做状态的通知更新,比如文件上传下载组件、语音朗读组件等。其实原理都一样,但作为发布/订阅框架,它在注册、发送事件和解除注册的代码设计值得我们借鉴:
- 如何使代码设计拥有非常清晰的分层?
- 同样使用观察者模式,如何做到让发布与订阅代码真正的解耦?
- 涉及项目的组件,如何做到尽量少的涉及业务逻辑,让设计的组件能通用化?
- 功能代码是基本组成部分,但优秀的设计必然涉及性能优化方面的考虑,如果我们的每次设计都能考虑到代码的执行原理(反射、异步等),思考如何让性能最佳,那我们的能力和代码质量都会上升一个台阶。
2、局限
只支持跨线程,而不支持跨进程。饿了么开源了基于Eventbus实现的跨进程通信框架HermesEventBus,可以参考它的实现原理。
总而言之,通过对源码的分析、自己项目使用到现在的稳定性和市面上其他应用的接入量,基本证实了EventBus是适合在实际项目中使用的优秀框架,至于现在流行基于RxJava,也参考了EventBus原理实现的事件总线功能RxBus,基本功能都能实现,没有大的差别,但性能和稳定性,我们需要进一步研究才能得出结论。
网友评论