GWT で MVP のようなアプリケーションを作成しています。
- 複数のパネルがあり、それぞれが常に表示されます。
- 各パネルにはプレゼンターがあり、すべてのプレゼンターの上に単一の AppController があります。
- 1 つのプレゼンター内で発生するが、他のプレゼンターに影響を与えるアプリケーション レベルのイベントがいくつかあります。
- これに推奨されるアーキテクチャには、イベント バスが含まれているようです。ただし、単純なものよりも利点があるかどうかはわかりません。
- 特に、単純に AppController (および AppController のみ) が任意のプレゼンターからのイベントをサブスクライブできるようにする方がクリーンではないでしょうか? その後、AppController は、イベントが与えられたときに、各プレゼンターに何をすべきかを伝えることができます。
- 「イベントバス」は準グローバル変数のようです。しかし、より正確に定義されたメソッド (つまり、AppController が各プレゼンターで呼び出すメソッド) を使用して同じことを達成できれば、それは望ましいことではありませんか?
私の懸念をより正確に言えば、単にイベントを適切な意思決定レベルに「バブルアップ」させるのではなく、イベントバスを導入するのはなぜですか? 私には、これは MVP 概念の最も単純な拡張のように思えます。イベント バスの新しいアイデアは必要ありません。Event Bus がどのような問題を解決するために導入されたのか理解できません。