1
Repository
パターンを使用してローカルとリモートからロードする場合は、ローカル戻り値Maybe<T>
とリモート戻り値Single<T>
をRxJava2
に入れるのは意味がありますか?RxJava2のリポジトリパターン
Repository
パターンを使用してローカルとリモートからロードする場合は、ローカル戻り値Maybe<T>
とリモート戻り値Single<T>
をRxJava2
に入れるのは意味がありますか?RxJava2のリポジトリパターン
間違いなく!ディスク/メモリキャッシュをMaybe
に戻し、空の場合はSingle
ネットワークソースから戻るように切り替えてください。 DBが何かを返すかもしれないし、返さないかもしれないので、それはよりきれいで論理的になり、ネットワーク応答はたいていいつもSingleである。最終的な回答はSingle
です。
例は次のようになります。
@Override
public Single<E> get(long id) {
return fetchFromDb(id)
.switchIfEmpty(fetchFromNetwork(id))
.subscribeOn(schedulerProvider.io());
}
私は以前に上記のようにそれを使用しています。実際、上記はニューヨークタイムズの影響を大きく受けています。Store library