在MVP设计模式中,一个视图可以有多个演示者吗?

时间:2013-08-16 17:02:02

标签: c# mvp

我研究过MVP的例子。我找到的所有例子都没有复杂的表格。在现实生活中,表格可能变得非常复杂(特别是如果您工作的客户不理解“单一责任原则”)。

记住这一点,以下示例是否符合MVP原则?

表单代码 - 表单实现了两个接口,每个接口对应一个接口。

    public partial class ExampleForm : Form, ILookupView, IExampleView
    {
        //Constructor
        public ExampleForm()
        {
           InitializeComponent();

            var presenterEquipment = new EquipmentPresenter(this);
            presenterEquipment.PopulateEquipmentLookup();

            var presenterMain = new ManageComponentsPresenter(this);
            presenterMain.SetInitialValues();
        }
    }

如果不是处理大型复杂表格的最佳方法是什么?

非常感谢。

2 个答案:

答案 0 :(得分:2)

我会将视图拆分为较小的视图,实现为用户控件并组成小视图的大视图。

但是,从技术上讲,我没有看到任何理由说明您的方法不起作用。您可以让大视图实现多个界面,并将多个演示者分配给不同的“子视图”。

答案 1 :(得分:1)

我的理念是让设计模式与您的应用程序的需求相匹配。我对MVP,MVC的理解也在不断增长。回答你的问题虽然MVP模型之间的关系是。

One View有一个Presenter可与零个或多个模型对话。 如果您需要为一个视图使用多个Presenter,则可能出现这种情况,这些视图很可能被分离为较大视图导入的较小子视图。或者存在可以分离出一个或多个模型的业务逻辑