当前位置: 首页 > 教程 > RxJava >

RxJava 介绍

精华
小牛编辑
250浏览
2023-03-14

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

  • 扩展观察者模式。

  • 支持数据/事件序列。

  • 提供运算符以声明方式将序列组合在一起。

  • 在内部处理线程、同步、线程安全和并发数据结构。

什么是 ReactiveX?

ReactiveX 是一个旨在为各种编程语言提供反应式编程概念的项目。反应式编程是指程序在数据出现时做出反应的场景。它是一个基于事件的编程概念,事件可以传播到注册观察者。

根据Reactive,他们结合了观察者模式、迭代器模式和函数模式的优点。

观察者模式做得对。ReactiveX 结合了观察者模式、迭代器模式和函数式编程的最佳思想。

函数式编程

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

响应式编程

响应式是指事件驱动的编程,其中数据流以异步方式传入并在到达时进行处理。

函数式响应式编程

RxJava 将这两个概念一起实现,其中流的数据随时间变化,消费者函数相应地做出反应。

反应式宣言

Reactive Manifesto是一个在线文档,说明应用软件系统的高标准。根据宣言,以下是反应式软件的关键属性 -

  • 响应式: 应始终及时响应。

  • 消息驱动: 应该在组件之间使用异步消息传递,以便它们保持松散耦合。

  • 高并发: 即使在高负载下也应保持响应。

  • 高可用: 即使任何组件出现故障,也应保持响应。

RxJava 的关键组件

RxJava 有两个关键组件:Observables 和 Observer。

  • Observable : 它代表一个类似于 Stream 的对象,它可以发出零个或多个数据,可以发送错误消息,在发出一组数据时可以控制其速度,可以发送有限和无限数据。

  • Observer : 它订阅 Observable 的序列数据并对每个 observables 项目做出反应。每当 Observable 发出数据时,都会通知观察者。一个观察者一个一个地处理数据。

如果项目不存在或没有为前一个项目返回回调,则永远不会通知观察者。