프로젝트에서 많은 모듈이 있습니다. 각 모듈은 다른 모듈/모듈에서 방출 된 데이터를 수신하려고 할 수 있습니다.Rx 구독하기 전에 Observable 만든
해결하려는 문제는 관찰 가능 A를 구독 할 때이 관찰 가능 항목이 아직 작성되지 않았을 수 있다는 것입니다. 이 문제를 해결하기 위해 두 가지 접근 방법이 논의됩니다.
- 관측 가능한 레지스트리 싱글 톤이 있습니다. 관찰 가능이 준비 될 때마다 레지스트리에 쌍을 넣고 레지스트리가 변경된 모든 모듈에 알립니다. 각 모듈은이 알림을 듣고 관심있는 변경인지 여부를 결정합니다. 관찰 대상이 준비되었다는 통지를 받으면 구독하십시오. 관찰 가능 항목이 제거되면 레지스트리를 업데이트하고 해당하는 쌍을 삭제 한 다음 모듈에 알립니다. 모듈은 구독을 취소합니다.
- 수신 된 event bus. Subject을 사용하십시오 : 싱글 톤 주제를 작성하십시오. 그런 다음 이벤트 또는 데이터 또는 항목을 방출해야 할 때마다이 주제에서 방출하십시오. 가입자의 경우 특정 주제에 대한 필터 만 사용하여 특정 이벤트를 구독 할 수 있습니다.
첫 번째 방법은 매우 간단 해 보이며, 왜 좋지 않은지 말할 수 없습니다. 하지만 그것은 나에게 확장 성이 없다. 두 번째 방법은 oto/eventbus를 Rx로 대체하는 권장 방법입니다.
이러한 접근 방식에 대한 의견이 있으십니까?