私が学んだすべての GWT / MVP の例は単純すぎて、少し複雑なモデル オブジェクトの表示と処理に関するベスト プラクティスを明確に示すことができません。
たとえば、ほとんどの例は、クリック ハンドラーをビューのいくつかの TextBoxes にアタッチするプレゼンターのようなものです...保存がクリックされると、プレゼンターの save() が呼び出され、更新された値を取得するだけで済みます。 MVP スタイル。しかし、それはそれほど現実的ではありません。
たとえば、次のようにします。
PresenterX - 「モデル」オブジェクトを取得します。さまざまなプリミティブの数が不明なオブジェクトなどを考えてみましょう
ViewX - モデル オブジェクトをテーブルに表示し、編集/再保存できるようにする必要があります。
...とても基本的なことのように聞こえます。しかし、表示する必要があるモデル オブジェクトのフィールドの量はわかりません。そのため、行/列の動的数に関連している可能性があります。おそらくテーブルには問題ありません...しかし、プレゼンターはこれをビューのテーブルにどのように与えるべきですか? ビューが理解するモデルオブジェクトとして、またはビューが本質的に理解する必要がある一連のリストに分割します。
また、特定のフィールドが編集可能である可能性がありますが、モデル オブジェクトを取得するまでそのフィールドは不明です (たとえば、モデル内の何かが編集可能なフィールドを決定します)。おそらくプレゼンターですが、MVP の方法でビューに反映するにはどうすればよいでしょうか?
最後に、ビューに「保存」ボタンがあるとしましょう...変更されたテーブル内のすべての行を把握するのは誰の仕事ですか?
ビューがモデルをもっと理解する必要があるか、プレゼンターがビューをもっと理解する必要があるように思えます-どちらも素晴らしいMVPではありません:( ...または、おそらくいくつかの中間オブジェクトが必要です。
この種のもの (Editors/RequestFactory など) には、より優れた/新しい便利な方法があることは知っていますが、上記のシナリオに関する提案を探しています。