事件编程

Guava库学习:学习Guava EventBus(一)EventBus

梦想的初衷 提交于 2019-11-26 11:57:31
在软件开发过程中,对象信息的分享以及相互直接的协作是必须的,困难在于确保对象之间的沟通是有效完成的,而不是拥有成本高度耦合的组件。当对象对其他组件的责任有太多的细节时,它被认为是高度耦合的。当一个应用程序有高度的耦合,维护将变得非常具有挑战,任何变化都将带来涟漪效应。为了解决这一类的软件设计问题,我们就需要基于事件的编程。本篇,我们就来学习Guava 基于事件的编程,Guava EventBus(一)EventBus。 在基于事件的编程中,对象可以订阅/监听特定事件,或发布事件。在Java中,我们已经对事件的监听有了初步的认识,一个事件侦听器是一个对象,其目的是当特定事件发生时得到通知。 Guava Cache系列 中,我们已经提到了 RemovalListener ,本篇起,我们将要学习Guava EventBus类,以及它如何作用于发布和订阅的事件。EventBus类将能够提高相互的协作水平,而且几乎没有对象之间的耦合。值得注意的是,EventBus是一个轻量级、进程内发布/订阅的沟通风格,并不用于进程间通信。 本系列的学习中,我们将学习和讨论以下内容: EventBus 以及 AsyncEventBus类 使用EventBus注册订阅事件和事件通知 使用EventBus发布订阅 根据我们的需要,编写事件处理程序,选择粗粒度或细粒度的事件处理机制 结合EventBus,