RxJava - 概述



RxJava 是一個基於 Java 的 ReactiveX 擴充套件。它提供了 ReactiveX 專案在 Java 中的實現。以下是 RxJava 的主要特點:

  • 擴充套件了觀察者模式。

  • 支援資料/事件序列。

  • 提供運算子以宣告方式組合序列。

  • 內部處理執行緒、同步、執行緒安全和併發資料結構。

什麼是 ReactiveX?

ReactiveX 是一個旨在將響應式程式設計概念引入各種程式語言的專案。響應式程式設計是指程式根據資料出現情況做出反應的場景。它是一種基於事件的程式設計概念,事件可以傳播到註冊的觀察者。

根據 **響應式** 的說法,他們結合了觀察者模式、迭代器模式和函式式模式的優點。

正確實現的觀察者模式。ReactiveX 結合了觀察者模式、迭代器模式和函數語言程式設計的最佳理念。

函數語言程式設計

函數語言程式設計圍繞著使用純函式構建軟體展開。純函式不依賴於先前狀態,並且對於相同的引數總是返回相同的結果。純函式有助於避免與共享物件、可變資料和副作用相關的問題,這些問題在多執行緒環境中經常出現。

響應式程式設計

響應式程式設計指的是事件驅動的程式設計,其中資料流以非同步方式傳入,並在到達時進行處理。

函式式響應式程式設計

RxJava 同時實現了這兩個概念,其中資料流隨時間變化,而消費者函式相應地做出反應。

響應式宣言

響應式宣言 是一份線上文件,闡述了應用程式軟體系統的較高標準。根據該宣言,響應式軟體的主要屬性如下:

  • **響應式 (Responsive)** − 應該始終及時響應。

  • **訊息驅動 (Message Driven)** − 元件之間應該使用非同步訊息傳遞,以便保持鬆散耦合。

  • **彈性 (Elastic)** − 即使在高負載下也應該保持響應。

  • **彈性 (Resilient)** − 即使任何元件發生故障也應該保持響應。

RxJava 的關鍵元件

RxJava 有兩個關鍵元件:可觀察物件和觀察者。

  • **可觀察物件 (Observable)** − 它表示類似於流的物件,可以發出零個或多個數據,可以傳送錯誤訊息,其速度可以在發出資料集時進行控制,可以傳送有限和無限資料。

  • **觀察者 (Observer)** − 它訂閱可觀察物件的資料序列並對可觀察物件的每個專案做出反應。每當可觀察物件發出資料時,觀察者都會收到通知。觀察者逐個處理資料。

如果專案不存在或未為前一個專案返回回撥,則不會通知觀察者。

廣告
© . All rights reserved.