EventBus源码解析(一)-官方介绍

2017-12-27  本文已影响51人  andcoder

前言: 作为EventBus源码解析的第一篇文章,我们首先来解读EventBus官方对于EventBus库的介绍。


EventBus: Events for Android

EventBus是一个为Java和Android而生的开源库,它使用了发布者/订阅者的设计模式来实现APP的松耦合。EventBus作为通信的中心,用户只需书写几行代码,就可以很方便地解除类与类之间的耦合。下图是官方提供的通信流程图。

image

EventBus译文是事件总线,它作为事件通信的核心,主要实现了以下两个功能:

  1. 接收并缓存发布者发布的事件;
  2. 通知订阅者执行订阅方法;

前文说过,EventBus的设计是基于发布者/订阅者模式的,也就是所谓的观察者模式。我们知道,传统的观察者模式,会在发布者中持有一系列的订阅者引用,当有事件发生时,由发布者遍历通知订阅者去执行相应的订阅方法,它有以下几个弊端:

  1. 事件的管理和分发调度都由发布者维护,任务较重;
  2. 发布者持有观察者引用,本身就存在耦合;

EventBus对这种模式做了扩展,将事件的管理和分发调度从发布者中抽离出来,形成了事件总线EventBus,也自然解除了发布者与订阅者之间的耦合,这种设计值得借鉴。


使用EventBus的好处


EventBus高级特性

上一篇下一篇

猜你喜欢

热点阅读