MVP - 模型视图演示者

时间:2010-12-13 19:26:32

标签: design-patterns mvp

我访问过每个Google网站,每个教程,以及我在MVP上找到的所有内容。对我来说,一切都太高了。我想要一些非常基本的东西。大多数MVP都会直接进入,“哦,我们通过创建界面来解决这个问题”。我想知道为什么要创建这些接口。我想看看它们背后的例子和推理,而不只是......这里是MVP模式的工作方式,使用它......等等。

有什么好的消息来源,或者有人可以在这里解释一下吗?

另外,我真的不知道如何在WinForms中实现数据绑定,就像这些人说的那样。用户点击某些内容,单击“保存”,然后调用将该数据保存到数据库的方法,然后返回并重新加载屏幕出了什么问题。这不是数据绑定吗?如果是这样的话,为什么我还没有看到像MVP中的DataBinding之前那样的事情。

2 个答案:

答案 0 :(得分:1)

维基百科可以找到MVP的一个很好的概述:

http://en.wikipedia.org/wiki/Model-view-presenter

基本上,MVP是经典MVC的演变,它本质上提供了一些规则来消除MVC中“Controller”的含义。从历史上看,出现了两种类型的控制器:业务逻辑控制器和视图特定控制器(鼠标按下,页面加载等)。

MVP的运作原则是您的Model部分封装了应用程序的所有业务数据和逻辑。 View层负责所有用户界面事件以及如何将Model中的数据显示给用户。 Presenter层扮演服务器端控制器逻辑的角色 - 即。回应“提交帖子”请求。

注意:MVP可能更接近MVC模式的原始意图。

另请参阅2006年Jeremy Miller的帖子,其中介绍了MVP概念:

http://codebetter.com/blogs/jeremy.miller/archive/2006/02/01/137457.aspx

自MVP概念引入以来,世界不断发展,Ruby on Rails向世界传授如何创建可测试的Web应用程序并合理应用MVC概念。这些课程使它成为MonoRail和ASP.NET MVC,并对他们的设计产生了很大的影响。

答案 1 :(得分:0)

你读过Phil Haack的帖子ASP.NET Supervising Controller (Model View Presenter) From Schematic To Unit Tests to Code吗?这是关于MVP模式以及如何使用它的非常好的文章。

对于WinForms,请查看SO - Winforms - MVP examples