我正在努力实现模型 - 视图 - 展示器模式。我使用这种模式的方式如下:
现在我有一张公司可以注册的表格。但是可以有多个联系人。所以,在这张表格上我有一个联系人网格。
我的问题是,我应该将联系人字段添加到与其他公司字段相同的视图中吗?或者我应该在另一个视图中分隔它,以便表单实现两个视图(ICompanyView和IContactPersonView)与两个演示者类?
答案 0 :(得分:2)
首先,不要让您的视图实例化演示者,您不希望这样。无论您使用MVP(被动视图,监督控制器)的风格如何,您的视图应尽可能少。我所做的是在presenter构造函数中有一个视图,并在presenter Initialize()方法中我分配view.Presenter = this
(你也可以在Start()或其他一些“show”方法中执行此操作,但我通常将Initialization分隔到另一个因为演示者生命周期问题而致电)
至于你的多视图问题,如果你在表单的那一部分有复杂的逻辑(但我在你的例子中没有看到它),你可以将它分开在单独的用户控件/ MVP三元组中 - 这有助于我减少并简化演示者的代码。
答案 1 :(得分:1)
如果你只需要IContactPersonView / ICompanyView而不是拆分它们,那么就不要这样做。