2016-09-16 3 views
1

イベントバスを使用してすべてのアプリケーション層をデカップリングできますか?私はクリーンなアーキテクチャを使用しようとしています。通常、デカップリングは境界インターフェースによって行われますが、私はRXオブザーバを使っていくつかの例を見てきました。問題は、レイヤーをデカップリングするためにイベントバスを使用できますか?イベントバスはそのような仕事を処理できますか?イベントバスを使ってAndroidアプリケーションをデコリングする

答えて

1

イベントバスは、クロスカッティングアクティビティに最適です。必要がない場合は、イベントを配信するために中間層を通過する必要はありません。

クリーン/オニオン/マルチレイヤーアーキテクチャの場合は、イベントバスは必要ありませんが、レイヤー間の明確なコントラクト、つまり境界インターフェイスが必要です。彼らはRXを使用しても使用しなくてもよい。

インターフェイスなしのイベントバスを使用してモジュールを完全に切り離すことができます。その後、すべてのコンポーネントが非常にデカップリングされますが、何か意味のあることを行うのはデバッグ、メンテナンス、イベントバスを使用している場合でも常に良いアイデアです。

リアクティブプログラミングとイベントバスを組み合わせることで、イベントバス/コマンド/データフローの明確性を向上させるために、イベントバスのいくつかのコントラクトに囲まれた非常にデカップリングされたイベント駆動ピコサービスを作成できます。

私は個人的に、クロスカットイベントと簡単なデータフロー演算子の連鎖を渡す必要から生まれたRxHubを使用しています。

関連する問題