EventBus

android十大开源框架

人盡茶涼 提交于 2019-11-26 13:59:24
1-1 课程导学 第2章 Okhttp网络库深入解析和相关面试题分析 本章主要先通过分析OKhttp的简单使用,对于OKhttp的调度器、拦截器、缓存策略、连接池等进行了相应的源码和原理分析,并对于socket、websocket、http缓存、多线程下载、文件下载、https等经典Android面试题进行分析。 2-1 okhttp框架流程分析 2-2 okhttp同步请求方法 2-3 okhttp异步请求方法 2-4 okhttp同步请求流程和源码分析 2-5 okhttp异步请求流程和源码分析-1 2-6 okhttp异步请求流程和源码分析-2 2-7 okhttp任务调度核心类dispatcher解析-1 2-8 okhttp任务调度核心类dispatcher解析-2 2-9 okhttp拦截器流程 2-10 okhttp拦截器链介绍 2-11 okhttp之RetryAndFollowUpInterceptor解析 2-12 okhttp之BridgeInterceptor解析 2-13 okhttp缓存策略源码分析:put方法 2-14 okhttp缓存策略源码分析:get方法 2-15 okhttp拦截器之CacheInterceptor解析 2-16 okhttp拦截器之ConnectInterceptor解析-1 2-17

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,

为JFinal添加event消息事件

爷,独闯天下 提交于 2019-11-26 11:57:04
在之前使用spring mvc的时候,在复杂的下单和支付中有一部分功能使用的Spring事件驱动模型去完成!具体优点不啰嗦了,发现涛哥有篇文章讲得比较详细: 详解Spring事件驱动模型 最初准备基于Guava 的Eventbus去实现,发现其并不太适合!以下来自官方的wiki Why must I create my own Event Bus, rather than using a singleton? EventBus doesn't specify how you use it; there's nothing stopping your application from having separate EventBus instances for each component, or using separate instances to separate events by context or topic. This also makes it trivial to set up and tear down EventBus objects in your tests. Of course, if you'd like to have a process-wide EventBus singleton, there's nothing stopping you

guava eventbus源码解析

可紊 提交于 2019-11-26 11:56:38
说在前面 本文转自“天河聊技术”微信公众号 事件驱动模型设计是一种优雅的程序设计方式,实现有很多,原理都是发布与订阅,观察者设计模式实现,java自带的实现、spring ioc的事件驱动模型,还有guava的实现,今天介绍guava eventbus的源码实现,看过这篇文章你自己也可以实现实现一套了。 guava event源码解析 先上一个demo实现,了解车的原理之前先上去感受下 /** * 事件 * weifeng.jiang 2018-06-11 19:06 */ public class HelloEvent { private String message; public HelloEvent(String message) { this.message = message; } public String getMessage() { return message; } } /** * 订阅者 * weifeng.jiang 2018-06-11 19:11 */ public class EventListener { @Subscribe public void listen(HelloEvent helloEvent){ System.out.println(helloEvent.getMessage()); } } /** * 客户端 * weifeng

Guava学习笔记:EventBus

房东的猫 提交于 2019-11-26 11:56:19
  EventBus是Guava的事件处理机制,是设计模式中的观察者模式(生产/消费者编程模型)的优雅实现。对于事件监听和发布订阅模式,EventBus是一个非常优雅和简单解决方案,我们不用创建复杂的类和接口层次结构。   Observer模式是比较常用的设计模式之一,虽然有时候在具体代码里,它不一定叫这个名字,比如改头换面叫个Listener,但模式就是 这个模式。手工实现一个Observer也不是多复杂的一件事,只是因为这个设计模式实在太常用了,Java就把它放到了JDK里 面:Observable和Observer,从JDK 1.0里,它们就一直在那里。从某种程度上说,它简化了Observer模式的开发,至少我们不用再手工维护自己的Observer列表了。不过,如前所 述,JDK里的Observer从1.0就在那里了,直到Java 7,它都没有什么改变,就连通知的参数还是Object类型。要知道,Java 5就已经泛型了。Java 5是一次大规模的语法调整,许多程序库从那开始重新设计了API,使其更简洁易用。当然,那些不做应对的程序库,多半也就过时了。这也就是这里要讨论知识 更新的原因所在。今天,对于普通的应用,如果要使用Observer模式该如何做呢?答案是Guava的EventBus。   EventBus 基本用法:   使用Guava之后, 如果要订阅消息,

Java guava中的异步事件处理方案 eventBus

末鹿安然 提交于 2019-11-25 21:15:53
一、简述 EventBus是Guava的事件处理机制,是设计模式中的观察者模式(生产/消费者编程模型)的优雅实现,在应用中可以处理一些异步任务。对于事件监听和发布订阅模式,EventBus是一个非常优雅和简单解决方案,我们不用创建复杂的类和接口层次结构。 EventBus实际上是一个消息队列,Event Source发送一个消息到EventBus,然后再由EventBus将消息推送到所监听的Listener。 二、EventBus基本用法 1. 创建Listener 我们可以通过@Subscribe注解将任意的类的方法变为一个Listener。 public class SimpleListener { private final static Logger LOGGER = LoggerFactory.getLogger(SimpleListener.class); /** * 一个简单的Listener方法 * @param event Guava规定此处只能有一个参数 */ @Subscribe public void doAction(final String event){ if (LOGGER.isInfoEnabled()){ LOGGER.info("Received event [{}] and will take a action", event); } } }