1

winforms アプリケーションで仮想グリッドと MVP パターンを使用する場合の責任の最適な内訳は何ですか。

含む:

  1. ユーザーが変更したセルの更新時にグリッドからコールバックを取得する
  2. 指定された行と列のセルのスタイルと値を設定するためのグリッドからのコールバック
4

2 に答える 2

1

Model-View-Presenter と呼ばれる多くのパターンの正確な役割はさまざまです。主に、プレゼンターがビューをどの程度制御できるかが異なります。Martin Fowler は、 GUI Architecturesに関する彼の章で、さまざまなバリエーションの詳細な議論を行っています。一読の価値があります。

アダプターと責任をある程度詳しく扱っているため、Presenter Firstをご覧ください。

Passive ViewSupervising Controllerはどちらも一見の価値があります。

モデル (またはドメイン モデル) == 状態と動作を含む、システムに関与するエンティティの論理表現

presenter == ビュー (および場合によってはモデル) からのイベントをリッスンし、それらのリクエストにサービスを提供し、モデル タイプをビュー タイプ (パッシブ ビュー) に変換します。ユーザーからの刺激に反応します。

ビュー == プレゼンテーション: ユーザーが対話してユーザー入力を収集できるモデルの視覚的表現

コールバックとグリッド セル スタイルの取得に関する具体的な質問には、グリッドからイベントを処理するビューと、イベントをプレゼンターに戻してアクションを要求するか、モデルからデータを取得することが含まれます。これは、セルのコンテンツが更新されたときのコールバックに最適です (プレゼンターがモデルの変更を検証してモデルを変更できるように、これをプレゼンターに公開する必要があります)。
グリッド セル スタイルについては、ビュー内のある種のアダプターが、モデルからの状態 (ビューからプレゼンターへのイベントを介して取得) をグリッド セル スタイル情報に変換する必要があると考えています。これはプレゼンターで発生する可能性がありますが、個人的にはプレゼンターがビュー内のウィジェットの知識を持っていないことを好みます。

于 2008-10-12T01:40:30.917 に答える
0

私の理解が正しければ、グリッドはビューの実装の一部であり、プレゼンターには表示されません。その場合、プレゼンターはデータがどのように表示されるかを知る必要はなく、データを提供する方法だけを知る必要があります。

おそらく、グリッドが通信する何らかのアダプターであるヘルパー クラスを作成するでしょう。グリッドには、このヘルパー以外は何も表示されません。ビューについても同様です。

コラボレーションは次のようになります。

グリッド <-- ヘルパー <-- ビュー <--> プレゼンター

于 2008-10-11T22:24:51.403 に答える