관찰 가능한 상태를 유지하기 위해 RxJava 패턴이 더 좋은지에 대한 질문이 있습니다.Rx에서 관찰 가능한 상태를 유지하는 최적의 방법
간단하게하기 위해 시스템에서 특정 상태 (불리언 플래그라고 가정 해 봅시다)를 추적하고이를 관찰 가능한 방식으로 노출해야하는 StateManager
클래스가 있다고 가정 해 봅시다. 이 관리자는 매우 긴 수명을 가지고
class StateManager {
Observable<Boolean> state();
...
}
을 언제든지 가입 또는 탈퇴 할 여러 "클라이언트"(예를 들어, 뷰, 다른 관리자 등)을 할 수 : 따라서, 이러한 아래와 같은 방법을 것이다 . 일부 내부 이벤트를 기반으로 상태가 변경됩니다.
는 BehaviourSubject
의 상태를 소비자가 직접 후크있는 유지하는 것이 처리하는 가장 확실한 방법 :
class StateManager {
Subject mStateSubject = BehaviourSubject.create(true);
Observable<Boolean> state() {
return mStateSubject.asObservable();
}
...
}
이에 더 나은 방법이 있습니까?
네, 아주 좋은 지적입니다. 그러나, 제 경우에는, 상태를 유지하고 소비자에게 변경 사항을 노출해야합니다. 제 사례에 적용 할 수있는 "기능적 연산자의 조합"에 대한보다 구체적인 예가 있습니까? –
다소 고안된 예가 추가되었습니다. – Shlomo