【发布时间】:2015-07-03 08:43:22
【问题描述】:
我在我的项目中使用 EventBus,它运行良好,但一些大学表示他们在使用这个库时遇到了问题。我不是在谈论 EventBus 模式的 concreate 实现,有两种广泛使用的实现。
但是它们都使用反射。反射并不便宜,尤其是在移动设备上。
所以我的问题是为什么不避免使用反射??
例如,我的想法是使用 Android Service 作为事件总线管理器,或者您可以使用在应用程序生命周期中可用的自定义应用程序类。例如,服务将能够注册订阅者、通知他们、取消注册……EventBus 可以做的所有事情。至于服务是高优先级的组件,我们可以确定它在我们需要发送事件时是活跃的,而且如果我们在应用程序类中会引用它,例如。
关于订阅者,为什么不只实现通用接口OnEventSubscriber<E extends BaseEvent>,如果您对多个事件感兴趣,您可以实现另一个具有适当事件类型的接口。并实现具有特定类型的 onEvent 方法。
为什么当前的实现使用反射方法而不是上面描述的方法?创建这些库的人都是经验丰富的开发人员,因此必须有其实施的原因。
我将不胜感激任何解释,cmets。提前谢谢。
【问题讨论】:
-
[LocalBroadcastManager][1],它是一个回调方法列表。没有反思也没有服务。 [1]:developer.android.com/reference/android/support/v4/content/…
标签: java android reflection event-driven event-bus