web-dev-qa-db-ja.com

MVPでの複数のプレゼンター間の通信

私はMVPパターンを使用してアプリケーションを設計していますが、システムのEdgeケースのいくつかは、複数のプレゼンター間の通信に依存しています。

View 1Presenter 1を呼び出し、Operation AResult Xを返します。

View 2View 3View 4はすべてResult Xに関心があります。それぞれにそれぞれのプレゼンターがあり、それぞれOperation Aを実行してResult Xを取得できます。

このアプリケーションには、他のビューとプレゼンターを効果的に格納するMainViewMainPresenterがあります。

解決策の1つは、Presenter 1Presenter 2Presenter 3、およびPresenter 4MainPresenter参照を提供することでした。そして、Operation Aの結果を得て、他のプレゼンターを呼び出します。

もう1つは、他のプレゼンターへの参照を保持し、他の呼び出しを容易にするFacadeレイヤーを実装することでした。

この状況にどのように対処しましたか?

4
Cameron

私の経験では、ユーザーインターフェイスの複数の場所で結果が必要な場合、これを計算する方法はユニバーサルビジネスルールであるため、そのルールには単一のプレゼンターで実装されているビジネスがないことがわかります。代わりに、ドメインモデルの一部です。その時点では、発表者間のコミュニケーションは必要ありません。ただし、発表者全員が同じドメインモデルを参照している場合を除きます。

5
Jules