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 模式的正确使用吗?

我试图弄清楚处理一个演示者关系的多个视图的最佳实践是什么。MVP 能否以这种方式建立多对一关系。作为另一个问题,我还想知道 MVP 模式是否可以/应该处理您有许多演示者和许多视图(或者您应该只有一个演示者)的情况?

如果您发现我对 MVP 的总体解释有任何问题,请务必指出这一点。

谢谢阅读!

4

1 回答 1

2

您能否进一步解释您的视图和控件如何使用相同的逻辑?我无法想象我会遇到这个问题的场景。如果逻辑是分开的,我想你会使用两个演示者。

然而,没有理由一个演示者不能处理多个视图/控件,尽管我只会将演示者重用于显示相同模型的多个视图(例如 CRUD 屏幕)。如果一个视图托管来自同一个演示者的另一个视图,我想不出你不应该重用演示者的原因(例如,在列表屏幕底部创建屏幕)。

于 2009-02-04T18:01:31.567 回答