我对实施部分有一些疑问。
如果我们需要跨页面重复使用控件,我一直认为会创建用户控件。
如果我想实现和测试MVP模式,我应该通过控件将我的简单页面分解为很多用户控件,以便我可以应用MVP模式?
如果我的网页上有很多独立组件怎么办?
我对MVP的理解是否存在差距?
帮助。
答案 0 :(得分:1)
简单地说,实现用户控件以使用此模式是不。非常简单,您需要一个视图(可以是aspx或wpf或winform或控制台等),一个演示者,它将从视图中读取/监听事件,调用模型并最终使用右侧填充视图数据,这就是MVP模式。
编辑:这个example很简单。
答案 1 :(得分:0)
您不必使用用户控件来使用MVP模式。 MVP是GUI模式,可帮助您分离您的顾虑。
例如,您编写ASP.NET网页来计算两个数字,没有MVP或MVC或任何其他GUI模式,您将在您的代码隐藏文件中编写所有这些逻辑,这很难测试。如果你想测试它,那么你带来了很多额外的行李,比如ASP.NET框架。
另一方面,你使用MVP编写这个应用程序,你会这样做。
查看=>这三个人都是最愚蠢的。没有任何或最小的逻辑。所以你没有必要进行单元测试。它只是“告诉”主持人发生了什么事情,并做了主持人要求的事情。
Presenter =>控制流程
Model =>业务逻辑/持久逻辑。
答案 2 :(得分:0)
我是您提到的Web Forms MVP项目的作者。这个答案特定于该库(这只是MVP模式的一个实现)。
不,您不需要使用用户控件。如果您愿意,可以让您的页面继承自MvpPage,然后它将与演示者本身一起使用。
我们建议您执行使用用户控件,即使您未在网站中多次使用该控件。这使您可以将视图,视图模型和演示者逻辑保持良好并捆绑为特定功能的逻辑单元。然后,页面仅用于布置控件。