Rxjava2.0

1.定义

  • Rxjava在github上面的介绍

RxJava:a library for composing asynchronous and event-based programs using observable sequences for the Java VM
// 翻译:RxJava 是一个在 Java VM 上使用可观测的序列来组成异步的、基于事件的程序的库

2.作用

由于在Android开发中,只能够在UI线程进行Ui的更新,而UI线程又不能执行耗时操作,像请求网络数据的时候必须在非UI线程进行,所以就需要用一种方式去实现UI线程与非UI线程的切换,从而实现更新UI的效果,而Rxjava就是实现异步操作一个库

3.特点

由于 Rxjava的使用方式:基于事件流的链式调用

  • 使用简单
  • 实现优雅
  • 逻辑简洁

可能这些特点在业务需求不复杂的情况下体现不出来,而且你还会觉得Rxjava的编程方式很复杂,但当你遇到业务需求很复杂的时候,这个时候Rxjava就体现出它的优势了,因为Rxjava他始终保持这种链式调用,并用其强大的操作符进行切换.

4.原理介绍

引入顾客去餐厅吃饭的例子

顾客——拿菜单点菜——点完菜呼叫服务员——通过服务员将菜单给到厨房——厨房接收到客户点的菜——做菜

这里面涉及到四个角色:顾客(被观察者),服务员(订阅),厨房(观察者),菜式(事件),Rxjava的底层便是采用观察者模式实现的:

  1. 被观察者(Observable): 负责生产事件

2, 观察者(Observer): 负责接收事件,并做出响应动作

3,订阅(Subscribe): 连接被观察者和观察者,在未订阅之前,被观察者和观察者之间是没有联系的,需要通过订阅去建立连接

4,事件(Event): 观察者和被观察者之间沟通的载体

如下图:

Rxjava2.0_第1张图片
流程图

5.Rxjava强大的操作符

  • 创建操作符


    示意图
  • 变换操作符


    示意图
  • 组合 / 合并操作符


    示意图
  • 功能性操作符


    示意图
  • 过滤操作符


    示意图
  • 条件 / 布尔操作符


    示意图

6.总结

示意图

后续待更新....
附上一篇传送门,写的很好,初学Rxjava2.0学习者的福音

你可能感兴趣的:(Rxjava2.0)