このパターンを理解しようとすると、かなり苦労します。職場では、パッシブビューを使用してMVPを実装しています。WinFormsを使用しています。
- したがって、インターフェイスを実装し、プレゼンターを備えたビュー(Windowsフォーム)があります。
- プレゼンターは、ビューが実装するインターフェイスのインスタンスを取得し、インターフェイスをスローするビューを管理します。
- プレゼンターはモデルとマネージャーを見ることができます。
- マネージャは、いくつかのモデルのデータベースの永続性を処理しますが、それらを手動で追加するのではなく、データと呼ばれる別のレイヤーを使用するため、そのレイヤーにデータを永続化するように指示します
- 次に、データレイヤーは、Entity Frameworkを使用して、データをデータベースに永続化します
モデルクライアントを表すクライアントのビューがあり、データベースにクライアントと呼ばれるテーブルがあるとします。クライアントは名前と都市を持つことができます。
また、Citiesのビューもあります。これは、単純な追加、編集、および削除であり、モデルのCityとテーブルのCityも表します。
ここで、クライアントのビューで、ユーザーに新しい都市を追加させたいので、ビューで別のビューである都市ビューを開き、ユーザーは新しい都市を作成します。
クライアントビューから、ユーザーが追加した都市を確認したいのですが、それはどのように可能ですか?ビューは何かを返しますか?
(都市を追加するときにデータベースに何も保持せずに、メモリに保持したいのですが、都市のモデルが必要です)
モデルを返し、ビューからモデルを表示することはMVPではないと思います。どうすればそれができますか?