0

これはばかげた質問かもしれませんが、現在の検索では、データの表示とプレゼンターとビューの間の相互作用に関する情報がほとんどでしたが、モデルとプレゼンターについてはほとんど見つかりませんでした。

基本的に、C#アプリケーションがあり、5x5の数値配列であるCSVファイルを開くとします。5 x 5のCSV配列をintの配列にロードしたい場合、これはグランドスキームのどこで処理されますか?

これはMVPに従うという私の現在の考えですが、私が間違っている場合は訂正してください(または、私が正しいことを確認してください)。

  1. ユーザーがボタンをクリックしてファイルをロードします。
  2. ビューは、ユーザーがファイルを選択するためのshowOpenDialog()をロードします。
  3. ユーザーがそのダイアログで[OK]をクリックすると、ビューはそのファイル名を含むイベントをプレゼンターに送信します。
  4. プレゼンターはそのファイル名を取得し、ファイルを開いて5 x5int配列に解析します。
  5. 次に、プレゼンターはイベントを通じてそのint配列をモデルに提供します。次に、モデルはその配列を格納します。
  6. モデルは、データが変更されたことを示すイベントを提供します。
  7. プレゼンターはこのイベントをリッスンして処理し、その5 x5int配列をDataTableに配置します。
  8. プレゼンターは、新しいDataTablereadyがあることを示すイベントを発生させます。
  9. ビューはこのイベントをリッスンして処理し、DataTableによって提供される情報でd​​ataGridViewを更新します。

MVPについての私の理解は、そこでのステ​​ップ5については曖昧になります。それはどうあるべきか、それとも各コンポーネントがMVPで何をするのか誤解したのでしょうか?

4

1 に答える 1

2

MVPでイベントを利用するあなたの方法は興味深いです..しかし、私は一般的にそれに出くわしていません。

私の経験から、これはワークフローです:

  1. ビューでクリックされたボタン
  2. ビューショーダイアログ
  3. ビューはファイル名をプロパティに保存します
  4. View呼び出しPresenterメソッド(例:loadFile)
  5. Presenterは、Viewインターフェイスを使用してプロパティからファイル名を取得します
  6. プレゼンターは、a)サービスを使用してロードを実行するか、b)ファイル自体をロードします
  7. モデルは、サービスまたはプレゼンターのいずれかを介して構築されます
  8. モデルは、loadFileメソッドを介して表示に戻されます
于 2013-02-19T01:30:11.750 に答える