Rxjava-overview
RxJava-概要
RxJavaは、ReactiveXのJavaベースの拡張機能です。 Javaでの実装またはReactiveXプロジェクトを提供します。 RxJavaの主な特徴は次のとおりです。
- オブザーバーパターンを拡張します。
- データ/イベントのシーケンスをサポートします。
- シーケンスを宣言的に一緒に構成する演算子を提供します。
- スレッド化、同期、スレッドセーフ、および並行データ構造を内部的に処理します。
ReactiveXとは何ですか?
ReactiveXは、さまざまなプログラミング言語にリアクティブプログラミングの概念を提供することを目的としたプロジェクトです。 リアクティブプログラミングとは、データが表示されたときにプログラムが反応するシナリオを指します。 これはイベントベースのプログラミングコンセプトであり、イベントはレジスタオブザーバに伝播できます。
*Reactive* に従って、Observerパターン、Iteratorパターン、および機能パターンのベストを組み合わせています。
正しく行われたオブザーバーパターン。 ReactiveXは、Observerパターン、Iteratorパターン、および関数型プログラミングの最高のアイデアを組み合わせたものです。
関数型プログラミング
関数型プログラミングは、純粋な関数を使用してソフトウェアを構築することを中心に展開します。 純粋な関数は以前の状態に依存せず、渡された同じパラメーターに対して常に同じ結果を返します。 純粋な関数は、共有オブジェクト、可変データ、およびマルチスレッド環境でよく見られる副作用に関連する問題の回避に役立ちます。
リアクティブプログラミング
リアクティブプログラミングとは、データストリームが非同期的に到着し、到着時に処理されるイベントドリブンプログラミングのことです。
機能的リアクティブプログラミング
RxJavaは両方の概念を一緒に実装し、ストリームのデータは時間とともに変化し、それに応じてコンシューマー関数が反応します。
リアクティブマニフェスト
Reactive Manifestoは、高水準のアプリケーションソフトウェアシステムを示すオンラインドキュメントです。 マニフェストに従って、以下はリアクティブソフトウェアの重要な属性です-
- 応答-常にタイムリーに応答する必要があります。
- メッセージドリブン-疎結合を維持するために、コンポーネント間で非同期メッセージパッシングを使用する必要があります。
- 弾性-高負荷下でも応答性を維持する必要があります。
- 弾力性-コンポーネントに障害が発生した場合でも、応答性を維持する必要があります。
RxJavaの主要コンポーネント
RxJavaには、ObservablesとObserverの2つの主要コンポーネントがあります。
- Observable -ゼロ以上のデータを送信できるStreamに類似したオブジェクトを表し、エラーメッセージを送信でき、そのデータのセットを送信しながら速度を制御でき、有限および無限のデータを送信できます。
- オブザーバー-オブザーバブルのシーケンスのデータをサブスクライブし、オブザーバブルのアイテムごとに反応します。 Observableがデータを送信するたびに、オブザーバーに通知されます。 オブザーバーはデータを1つずつ処理します。
アイテムが存在しないか、前のアイテムのコールバックが返されない場合、オブザーバーに通知されません。