RxJava - Cold および Hot な生産者(Flowable / Observable)
今回は、生産者(Publisher)は大きく分けて Cold と Hot の2つに分類することができます。それら2つについて説明してきます。
Cold な生産者
- Cold な生産者は 1つの消費者とのみ購読関係を結ぶ
- 1つの消費者と購読関係を結ぶ度にデータを通知するためのタイムラインを生成する
Hot な生産者
- Hot な生産者は 複数の消費者と購読関係を結ぶ
- 既に生成しておいたタイムラインに対して購読関係を結んだ消費者が後から加わるかたち
購読のタイミング
- Cold な生産者に対する購読は、購読開始時点で生産者側でデータの生産が開始される
- Hot な生産者に対する購読は、購読を開始したといっても生産者側でデータが生成されるとは限らない
- Hot な生産者を購読する場合、途中からのデータを通知される可能性もあるため、複数の購読者が同じデータを受け取れるとは限らない
RxJava での Cold / Hot な生産者
- 基本的に生成メソッドで作られる生産者は Cold な生産者である
- Hot な生産者をつくるには Cold な生産者を作ってから Hot な生産者へと変換するメソッドを呼んで変換するか、 Processor や Subject をつくる
- Hot な Flowable / Observable として ConnectionFlowable / ConnectionObservable がある
- Cold な Flowable / Observable を Hot な生産者に変換するメソッドを呼ぶと 上記2つが生成される
次の記事
参考
RxJavaリアクティブプログラミング (CodeZine BOOKS)
- 作者: 須田智之
- 出版社/メーカー: 翔泳社
- 発売日: 2017/02/17
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る