左側のパネルに分割コンテナがあります。これはボタン付きのユーザーコントロールです。右側のパネルには、押されたボタンに基づいて変化する初期ユーザーコントロールがあります。私が知りたいのは、こぼれたパネルのあるフォームに、ボタンビューのプレゼンターからのビューxでペイントすることをどのように知らせるのですか?
1 に答える
理論的には、プレゼンターはビューにアクセスできる必要があります。この場合、プレゼンターは左側のパネルのビューからのボタンのクリックについて通知され、フォームを更新して右側のパネルにビューを表示する必要があります。
これがどの程度正確に達成されるかは、特定の実装に大きく依存します。アーキテクチャ パターンはガイドラインです... 従わなければならない厳格な規則はありません (何らかの MVP ライブラリを使用している場合を除きます。その場合、そのライブラリの実装によって制約されます)。
編集: 以下の質問に答えるには、チップ...
繰り返しますが、それは実装に完全に依存しています。場合によっては、1 つの大規模な Presenter と数十のビューを持つことが理にかなっている場合があります。それ以外の場合は、ビューごとに 1 人のプレゼンターを用意することが理にかなっている場合があります。ただし、プレゼンターが複数いる場合でも、プレゼンターが互いに会話できるように階層を維持する必要があります。したがって、どこかで、あるレベルで、プレゼンターは、ボタンのクリックと、空のコンテナーが満たされるのを待っていることの両方についての知識を持っていることになります。
編集 2: (更新されたコメントへの応答) 厳格な規則はありませんが、MVP 実装に共通する特徴の 1 つは、プレゼンターが少なくとも部分的な制御を保持することです。つまり、プレゼンターは関連するすべての UI 要素に一定レベルのアクセス権を持っている必要があります。ビュー内にビューを入れ子にする場合でも、プレゼンターがビューと対話する方法を工夫する必要があります。