私はC#に適用されるModel View Presenterパターンを完全に理解しようとしています。私は私の頭を包むことができない1つの質問があります。モデルビュープレゼンター:なぜモデルは静的ですか?
多くの例では、モデルが静的として定義され、Presenterベースクラス(しばしばジェネリッククラス)で構築されていることに気付きました。
この場合、どのように複数のモデルクラスがありますか?私の理解から、作成されたすべてのプレゼンターは、単一のモデルクラスのみを参照することができます。
私が今見ている例は、http://wesaday.files.wordpress.com/2009/01/finalzip.doc(.zipに改名)です。 http://wesaday.wordpress.com/2009/01/30/winform-model-view-presenter-part-v-the-view/
上記のような例が、複数のビュー/プレゼンター/モデルを持つ作業アプリケーションにどのように適応するかを見ています。
私は理解していると思います。これは、プレゼンタークラスが(共有インスタンスではないので)モデルクラスを常にインスタンス化する必要があることを意味しますか? – halohunter
発表者は、新しいモデルインスタンスをインスタンス化するか、外部ソースからインスタンスインスタンスを受け取る必要があります。たとえば、私は通常、ベースプレゼンターにInitialize(モデル、ビュー)メソッドを追加し、モデル値に基づいてロジックを適用して、モデルのインスタンス化方法を決定します。値がnullの場合、抽象メソッドが呼び出されて、サブクラスが新しいモデルインスタンスを作成できるようになります。値がモデルのタイプに対応する場合、プレゼンターは単純にそのモデルとしてモデルを使用します。値がモデルのIDの型に対応する場合、ID値は抽象メソッドに渡されてモデルを取得します。 –