0

このパターンを理解しようとすると、かなり苦労します。職場では、パッシブビューを使用してMVPを実装しています。WinFormsを使用しています。

  • したがって、インターフェイスを実装し、プレゼンターを備えたビュー(Windowsフォーム)があります。
  • プレゼンターは、ビューが実装するインターフェイスのインスタンスを取得し、インターフェイスをスローするビューを管理します。
  • プレゼンターはモデルとマネージャーを見ることができます。
  • マネージャは、いくつかのモデルのデータベースの永続性を処理しますが、それらを手動で追加するのではなく、データと呼ばれる別のレイヤーを使用するため、そのレイヤーにデータを永続化するように指示します
  • 次に、データレイヤーは、Entity Frameworkを使用して、データをデータベースに永続化します

モデルクライアントを表すクライアントのビューがあり、データベースにクライアントと呼ばれるテーブルがあるとします。クライアントは名前と都市を持つことができます。

また、Citiesのビューもあります。これは、単純な追加、編集、および削除であり、モデルのCityとテーブルのCityも表します。

ここで、クライアントのビューで、ユーザーに新しい都市を追加させたいので、ビューで別のビューである都市ビューを開き、ユーザーは新しい都市を作成します。

クライアントビューから、ユーザーが追加した都市を確認したいのですが、それはどのように可能ですか?ビューは何かを返しますか?

(都市を追加するときにデータベースに何も保持せずに、メモリに保持したいのですが、都市のモデルが必要です)

モデルを返し、ビューからモデルを表示することはMVPではないと思います。どうすればそれができますか?

4

1 に答える 1

0

あるビューが別のビューを開くことは完全に合理的ですが、個人的には、呼び出し元が使用する値を返すビューは好きではありません。他のビューがこの新しい都市にアクセスできるようにする必要があるとしたら?

ここで私の答えを参照してください:プレゼンター間の MVP コミュニケーション? パブ/サブを使用して目標を達成する例については。

于 2012-04-26T04:08:49.493 に答える