guava EventBus 消息总线的运用】的更多相关文章

public class Test { public static void main(String[] args) { final EventBus eventBus = new EventBus(); eventBus.register(new Object() { @Subscribe public void lister(Integer integer) { System.out.printf("%s from int%n", integer); } @Subscribe pu…
Guava在guava-libraries中为我们提供了事件总线EventBus库,它是事件发布订阅模式的实现,让我们能在领域驱动设计(DDD)中以事件的弱引用本质对我们的模块和领域边界很好的解耦设计. 不再多的废话,直奔Guava EventBus主题.首先Guava为我们提供了同步事件EventBus和异步实现AsyncEventBus两个事件总线,他们都不是单例的,官方理由是并不想我们我们的使用方式.当然如果我们想其为单例,我们可以很容易封装它,一个单例模式保证只创建一个实例就对了. 下面…
EventBus(事件总线) Guava在guava-libraries中为我们提供了事件总线EventBus库,它是事件发布订阅模式的实现,让我们能在领域驱动设计(DDD)中以事件的弱引用本质对我们的模块和领域边界很好的解耦设计. 不再多的废话,直奔Guava EventBus主题.首先Guava为我们提供了同步事件EventBus和异步实现AsyncEventBus两个事件总线,他们都不是单例的,官方理由是并不想我们我们的使用方式.当然如果我们想其为单例,我们可以很容易封装它,一个单例模式保…
同步发表于http://avenwu.net/ioc/2015/01/29/custom_eventbus Fork on github https://github.com/avenwu/support Android有广播和Receiver可以处理消息的传递和响应,要进行消息-发布-订阅,除此之外作为开发者现在也有其他类似的方案可以选择,比如EventBus和Otto,都是比较热门的三方库.那么这些三方库到底是怎么实现模块之间的解耦,使得消息可以再不同的系统组件之间传递呢? 源码剖析 由于是…
背景 对于Android系统来说,消息传递是最基本的组件,每一个App内的不同页面,不同组件都在进行消息传递.消息传递既可以用于Android四大组件之间的通信,也可用于异步线程和主线程之间的通信.对于Android开发者来说,经常使用的消息传递方式有很多种,从最早使用的Handler.BroadcastReceiver.接口回调,到近几年流行的通信总线类框架EventBus.RxBus.Android消息传递框架,总在不断的演进之中. 从EventBus说起 EventBus是一个Androi…
简介 地址:https://github.com/greenrobot/EventBus EventBus是一个[发布 / 订阅]的事件总线.简单点说,就是两人[约定]好怎么通信,一人发布消息,另外一个约定好的人立马接收到你发的消息. EventBus是一款针对Android优化的发布/订阅事件总线.主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service,线程之间传递消息. 优点:开销小,代码更优雅,将发送者和接收者解耦. 用处:相信大…
一.架构速读 传统上,Java的进程内事件分发都是通过发布者和订阅者之间的显式注册实现的.设计EventBus就是为了取代这种显示注册方式,使组件间有了更好的解耦.EventBus不是通用型的发布-订阅实现,不适用于进程间通信. 架构图如下: . 二.简单使用 步骤如下: 1.构造一个事件总线 2.构造一个事件监听器 3.把事件监听器注册到事件总线上 4.事件总线发布事件,触发监听器方法 主测试类如下: package guava.eventbus; import com.google.comm…
原文链接 译文连接 译者:沈义扬 传统上,Java的进程内事件分发都是通过发布者和订阅者之间的显式注册实现的.设计EventBus就是为了取代这种显示注册方式,使组件间有了更好的解耦.EventBus不是通用型的发布-订阅实现,不适用于进程间通信. 范例 01 // Class is typically registered by the container. 02 class EventBusChangeRecorder { 03 @Subscribe public void recordCu…
[从源码学设计]蚂蚁金服SOFARegistry之消息总线 目录 [从源码学设计]蚂蚁金服SOFARegistry之消息总线 0x00 摘要 0x01 相关概念 1.1 事件驱动模型 1.1.1 概念 1.1.2 应用环境 1.2 消息总线 0x02 业务领域 2.1 业务范畴 2.2 问题点 2.3 解决方案 0x03 EventCenter 3.1 目录结构 3.2 类定义 3.2.1 操作 3.2.2 执行 & 解耦 3.2.3 Listener列表 3.2.4 ArrayListMult…
[从源码学设计]蚂蚁金服SOFARegistry之消息总线异步处理 目录 [从源码学设计]蚂蚁金服SOFARegistry之消息总线异步处理 0x00 摘要 0x01 为何分离 0x02 业务领域 2.1 应用场景 2.2 延迟和归并 2.2.1 业务特点 2.2.2 问题 2.2.3 解决 2.3 蚂蚁金服实现 0x03 DataChangeEventCenter 3.1 总述 3.2 DataChangeEventCenter 3.2.1 定义 3.2.2 消息类型 3.2.3 初始化 3.…