RxJava---概念

RxJava是什么

RxJava是由 Netflix提供的ReactiveX一份Java实现。首先我们要熟悉RX的概念,RX广义上指响应式编程。
响应式编程要具备以下几个特性:
1.对事件做出响应:把各类操作抽象为事件,做到事件驱动。
2.对负载做出响应:着眼于系统整体的可扩展性,而不是某一种操作。
3.对失败做出响应:层层处理异常信息,不把异常抛给上层。
4.对操作做出响应:建立同步、异步操作响应,实现交互式用户体验。

RxJava核心概念

RxJava提供了丰富的API,使用者可应用于自己的系统中,在无需精通线程安全性、同步策略、数据一致性及NIO等概念的情况下,即可实现异步编程、编写事件驱动代码。
它支持Java6以上运行环境,同时支持多种编程语言: GroovyClojureJRuby,Kotlin and Scala.
表面上看,RxJava只是对观察者模式的一种扩展实现,通过将一系列数据、事件和操作动态组合在一起,并发高效的实现特定功能。这么认为的话,就太小看RxJava强大之处了。
RxJava的核心概念为 ObservableSubscriber,从字面我们就可以看出,关注点在于事件和消费者。
 下图对比了数据操作上传统方式和RxJava的差异
Observable
 单个数据元多个数据元
同步方式T getData()Iterable<T> getData()
异步方式Future<T> getData()Observable<T> getData()

差异的关键点在于,Observable(可理解为单个或多个事件)是可以组合使用的。
Java提供的Future对象,比较适用于单一层次的异步调用,遇到复杂场景,尤其可能出现嵌套使用的场景,逻辑上就会变得异常复杂。
使用Future对象去做各种有条件的异步调用,找出最优组合是非常困难的。很多情况下,是不可能找出的,因为每个延时响应的请求,都是处于变化中的一个状态。
强行使用Future做组合异步调用,会导致代码逻辑异常复杂(甚至引入不易察觉的bug),或者过早的阻塞在future.get()方发出,从而把异步调用所带来的优势消耗的荡然无存。
Observable,就是为了构建各种异步流和组合各类异步数据而诞生的。
下一篇将介绍如何在项目中使用RxJava工具包。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值