プロジェクトでは、多くのモジュールがあります。各モジュールは、他のモジュール/モジュールから発せられたデータを受信したいことがあります。Rx Observableの前に購読してください
解決しようとする問題は、観測可能なAを購読すると、この観測可能なものがまだ作成されていない可能性があります。この問題を解決するには、次の2つのアプローチについて検討します。
- 観測可能なレジストリシングルトンがあります。監視可能な状態になるたびに、レジストリにペアを設定し、レジストリが変更されたことをすべてのモジュールに通知します。各モジュールはこの通知を聞き、それが興味のある変更であるかどうかを判断します。観察可能な状態になったことが通知された場合は、サブスクライブします。監視対象が削除された場合は、レジストリを更新し、対応するペアを削除して、モジュールに通知し、モジュールは、レジストリを登録解除します。
- Rx実装event bus。 Subjectを利用してください:シングルトンSubjectを作成し、イベントまたはデータまたはアイテムを放出する必要があるときはいつでも、このサブジェクトから放出してください。あなたのサブスクライバでは、サブジェクトのフィルタを使用して、特定のイベントのみを購読します。
最初のアプローチは非常に単純に見えますが、なぜそれが良くないのかわかりません。しかし、それは私にスケーラブルに見えません。 2番目の方法は、otto/eventbusをRxに置き換えるための推奨される方法です。
これらのアプローチに関する考えはありますか?