1

我研究过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();
        }
    }

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

非常感谢。

4

2 回答 2

2

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

但是,从技术上讲,我看不出您的方法行不通的任何原因。您可以让您的大视图实现多个界面并将多个演示者分配给不同的“子视图”。

于 2013-08-16T17:46:22.310 回答
1

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

一个视图有一个演示者,它与零个或多个模型对话。如果您需要多个 Presenter 用于一个视图,则可能的情况是这些视图可能是很好的候选者,可以将它们分成较小的子视图,这些子视图由较大的视图导入。或者存在可以分离为一个或多个模型的业务逻辑

于 2013-08-16T17:14:19.497 回答