【问题标题】:MVP - Model View PresenterMVP - 模型视图展示器
【发布时间】:2010-12-13 19:26:31
【问题描述】:

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

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

另外,我真的不知道如何按照这些人所说的方式在 WinForms 中实现 Data Binding。用户点击某个东西,点击保存,然后调用一个方法将该数据保存到数据库中,然后返回并重新加载屏幕,这是怎么回事。这不是数据绑定吗?如果是这样,为什么我之前没有看到过类似的东西来解释 MVP 中的 DataBinding。

【问题讨论】:

    标签: design-patterns mvp


    【解决方案1】:

    可以在 Wikipedia 上找到关于 MVP 的详细概述:

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

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

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

    注意:MVP 可能更接近于 MVC 模式的初衷。

    还可以看看 Jeremy Miller 早在 2006 年发布的帖子,该帖子帮助介绍了 MVP 概念:

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

    自从引入 MVP 概念以来,世界不断发展,Ruby on Rails 教会了世界如何创建可测试的 Web 应用程序并合理地应用 MVC 概念。这些经验适用于 MonoRail 和 ASP.NET MVC,并强烈影响了他们的设计。

    【讨论】:

    • 基本上,我想构建我的代码,以便我拥有所有的视图(表单)。然后是构建这些表单的代码。这段代码基本上会在它的 onLoad 中调用“控制器”并传入表单的当前状态,然后控制器会将所有数据传回以填充表单。控制器将调用 DataLayer 类并使用模型。我会遇到什么问题?
    【解决方案2】:

    您是否阅读过 Phil Haack 的帖子ASP.NET Supervising Controller (Model View Presenter) From Schematic To Unit Tests to Code?这是一篇关于 MVP 模式及其使用方法的非常好的文章。

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

    【讨论】:

    • 我想将它用于 WinForms =/
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-03
    • 1970-01-01
    • 2011-01-22
    • 2023-04-09
    • 1970-01-01
    • 2020-07-04
    • 2011-02-25
    相关资源
    最近更新 更多