2

アプリケーション全体で再利用したいユーザーコントロールがあるが、プレゼンターも必要とするページやその他のコントロールがある状況に興味があります。

だから私はアップロードビューとコントロールを持っていると言う

public partial class UploadControlView : System.Web.UI.UserControl, IUploadView

しかし、私はページビューも持っています

public partial class ExcelProcessorView : System.Web.UI.Page, IExcelProcessorView

アップロードコントロールはExcelProcessorページにあるため、ユーザーはファイルをアップロードして、Excel処理のビジネスロジックに渡すことができます。

だから私にはプレゼンターがいます

public class ExcelUploadAndProcessPresenter : IUploadPresenter

ExcelProcessorViewで、次のようにプレゼンターを接続します。

protected void Page_Load(object sender, EventArgs e) 
    {
        ExcelUploadAndProcessorPresenter presenter = 
            new ExcelUploadAndProcessorPresenter(this, uploadControl);
        this.AttachPresenter(presenter);
        uploadControl.AttachPresenter(presenter);
        //init etc...
    }

これはMVPパターンの正しい使用法ですか?

私は、1つのプレゼンター関係に対する多くのビューを処理するためのベストプラクティスを理解しようとしています。MVPは、このように多対1の関係を持つことができますか。別の質問として、MVPパターンが、プレゼンターが多く、ビューが多い(またはプレゼンターが1人だけである)状況を処理できるかどうか、または処理できるかどうかも知りたいですか?

私のMVPの一般的な解釈に問題がある場合は、ぜひ先に進んでそれを指摘してください。

読んでくれてありがとう!

4

1 に答える 1

2

ビューとコントロールが同じロジックをどのように使用しているか、さらに説明していただけますか? この問題が発生するシナリオは想像できません。ロジックが分かれている場合は、2 つのプレゼンターを使用すると思います。

ただし、同じモデルを表示する複数のビュー (CRUD 画面など) に対してのみプレゼンターを再利用しますが、1 つのプレゼンターが複数のビュー/コントロールを処理できない理由はありません。あるビューが同じプレゼンターの別のビューをホストしている場合、そのプレゼンターを再利用してはいけない理由が思い浮かびません(たとえば、リスト画面の下部にある [作成] 画面)。

于 2009-02-04T18:01:31.567 に答える