RxJava-概要

RxJavaは、ReactiveXのJavaベースの拡張機能です。Javaでの実装またはReactiveXプロジェクトを提供します。RxJavaの主な特徴は次のとおりです。

  • オブザーバーパターンを拡張します。

  • データ/イベントのシーケンスをサポートします。

  • 宣言的に一緒にシーケンスを構成する演算子を提供します。

  • スレッド化、同期、スレッドセーフ、および同時データ構造を内部で処理します。

ReactiveXとは何ですか?

ReactiveXは、さまざまなプログラミング言語にリアクティブプログラミングの概念を提供することを目的としたプロジェクトです。リアクティブプログラミングとは、データが表示されたときにプログラムが反応するシナリオを指します。これはイベントベースのプログラミング概念であり、イベントはレジスタオブザーバーに伝播できます。

によると Reactive、それらは、オブザーバーパターン、イテレーターパターン、および機能パターンの最高のものを組み合わせています。

オブザーバーパターンは正しく実行されました。ReactiveXは、Ob​​serverパターン、Iteratorパターン、および関数型プログラミングからの最良のアイデアの組み合わせです。

関数型プログラミング

関数型プログラミングは、純粋関数を使用してソフトウェアを構築することを中心に展開されます。純粋関数は前の状態に依存せず、渡された同じパラメーターに対して常に同じ結果を返します。純粋関数は、共有オブジェクト、可変データ、およびマルチスレッド環境でよく見られる副作用に関連する問題を回避するのに役立ちます。

リアクティブプログラミング

リアクティブプログラミングとは、データストリームが非同期的に受信され、到着時に処理されるイベント駆動型プログラミングを指します。

関数型リアクティブプログラミング

RxJavaは両方の概念を一緒に実装し、ストリームのデータは時間とともに変化し、それに応じてコンシューマー関数が反応します。

反応性マニフェスト

Reactive Manifestoは、高水準のアプリケーションソフトウェアシステムを示すオンラインドキュメントです。マニフェストによると、以下はリアクティブソフトウェアの主要な属性です-

  • Responsive −常にタイムリーに対応する必要があります。

  • Message Driven −コンポーネント間で非同期メッセージパッシングを使用して、コンポーネントが疎結合を維持するようにする必要があります。

  • Elastic −高負荷でも応答性を維持する必要があります。

  • Resilient −コンポーネントに障害が発生した場合でも、応答性を維持する必要があります。

RxJavaの主要コンポーネント

RxJavaには、ObservablesとObserverの2つの主要コンポーネントがあります。

  • Observable −これは、0個以上のデータを送信でき、エラーメッセージを送信でき、一連のデータを送信しながら速度を制御でき、有限データと無限データを送信できるStreamに似たオブジェクトを表します。

  • Observer− Observableのシーケンスデータをサブスクライブし、Observableのアイテムごとに反応します。Observableがデータを発行するたびに、オブザーバーに通知されます。オブザーバーはデータを1つずつ処理します。

アイテムが存在しない場合、または前のアイテムのコールバックが返されない場合、オブザーバーに通知されることはありません。