2017-12-18 17 views
1

에서 저장소 패턴은 로컬 및 원격에서 Repository 패턴 및 로딩을 사용하는 경우, 그것은 의미가 RxJava2의 로컬 반환 Maybe<T> 및 원격 수익 Single<T>을 할 수 있도록합니까?RxJava2

답변

2

확실히! 디스크/메모리 캐시를 Maybe으로 만들고 비어있는 경우 Single 네트워크 소스에서 돌아가도록 전환 할 수 있습니다. DB가 아무 것도 반환하지 않을 수도 있고 네트워크 응답이 거의 항상 단일이기 때문에 더 명확하고 논리적으로 만듭니다. 최종 응답은 Single 일 수 있습니다.

예제는 다음과 같습니다 제가 위에서 이전처럼 사용했다

@Override 
public Single<E> get(long id) { 
    return fetchFromDb(id) 
      .switchIfEmpty(fetchFromNetwork(id)) 
      .subscribeOn(schedulerProvider.io()); 
} 

. 사실 위의 내용은 뉴욕 타임즈 (New York Times)의 영향을 크게 받았다. Store library