Rxjava 简明教程

RxJava - Overview

RxJava 是 ReactiveX 基于 Java 的扩展。它在 Java 中实现或 ReactiveX 项目。以下是 RxJava 的主要特性。

  1. Extends the observer pattern.

  2. Support sequences of data/events.

  3. 提供操作符组合序列,声明性地组合在一起。

  4. 在内部处理线程、同步、线程安全性及并行数据结构。

What is ReactiveX?

ReactiveX 是一个项目,其目标是将响应式编程概念应用于不同的编程语言。响应式编程是指在数据出现时程序随之做出反应的方案。这是一种基于事件的编程概念,事件可以传播到注册观察者。

根据 Reactive ,它们将观测者模式、迭代器模式和函数式模式的优点结合在一起。

做正确的事情的观测者模式。ReactiveX 是观测者模式、迭代器模式和函数式编程的最佳思想的结合。

Functional Programming

函数式编程围绕使用纯函数构建软件。纯函数不依赖于以前的状态,并且对于传递的相同参数始终返回相同的结果。纯函数有助于避免在多线程环境中常见与共享对象、可变数据和副作用相关的各种问题。

Reactive Programming

响应式编程是指在数据流以异步方式出现时,将数据流进行处理的事件驱动编程。

Functional Reactive Programming

RxJava 将这两个概念结合在一起,其中流的数据随着时间的推移而改变,消费者函数做出相应的反应。

The Reactive Manifesto

Reactive Manifesto 是一份在线文档,规定了应用软件系统的崇高标准。根据宣言,下列是有反应的软件的关键属性:

  1. Responsive ——应当始终及时响应。

  2. Message Driven ——应当在组件之间采用异步消息传递,以便它们维持松散的耦合。

  3. Elastic ——应当即使在高负载下也能保持响应。

  4. Resilient ——应当即使任何组件失败也能保持响应。

Key components of RxJava

RxJava 有两个关键组件:可观察序列和观察者。

  1. Observable − 它表示一个类似于 Stream 的对象,它可以发出零个或多个数据,可以发送错误信息,可以在发出一定数据后控制其速度,可以发送有限和无限数据。

  2. Observer − 订阅可观察序列的数据序列,并对可观察序列的每个项目做出反应。无论何时可观察序列发出数据,观察者都会收到通知。观察者逐个处理数据。

如果没有出现项目或没有为之前的项目返回回调,则永远不会通知观察者。