3

アプリケーションでグローバル イベント バスを使用するのは不適切な設計ですか?
アプリケーション全体で密結合された一連のコンポーネントが相互に通信することを回避するにはどうすればよいでしょうか?
Java の世界で何らかの規律を強制するためのメカニズム/ツール/ライブラリを考えられますか?

4

1 に答える 1

4

グローバル イベント バス、つまりアプリケーション内のすべてのコンポーネント (クラスまたはオブジェクト) にアクセスできるイベント バスの問題は、イベント バスを使用するユーザーを制御できないことです。

あなたが単独の開発者であるか、緊密なチームで作業している場合は、コンポーネントがイベント バスを使用できる条件について合意することができます。それ以外の場合、すべてのバーはオフです。

そうは言っても、イベントバスと通信する可能性があるはずです。そうでなければ、それを持っていても意味がありません。イベントの実際の発生を担当するイベントバスのプロキシを導入することにより、プロキシに依存するユーザーを制御できます。

依存性注入を ( guiceや手巻きなどのフレームワークを介して) 使用することで、プロキシ状態を自動的に提供して、イベントバスへの依存性を明示的にすることができます。

于 2012-07-24T09:17:13.267 に答える