MVC 优于 MVP 的优势 [重复]

Posted

技术标签:

【中文标题】MVC 优于 MVP 的优势 [重复]【英文标题】:Benefits of MVC over MVP [duplicate] 【发布时间】:2010-11-15 12:34:49 【问题描述】:

可能的重复:What are MVP and MVC and what is the difference?mvc and mvp pattern

伙计们,

与 MVP 相比,使用 MVC 有哪些好处?我喜欢我不必为 MVP 使用框架,并且可以通过接口和类来实现。我仍然得到 MVC 所具有的关注点分离,并且我得到了单元测试。与 MVP 相比,使用 MVC 有哪些好处?

【问题讨论】:

【参考方案1】:

由于我的 cmets 已对我的重复项进行了仔细审查,因此我将仅参考此 SO 问题,并将其留给“更高的权力”以在他们认为合适的情况下关闭:PWhat are MVP and MVC and what is the difference?

【讨论】:

【参考方案2】:

人们有时过于拘泥于姓名首字母和TLA。

如果 Phil Haack 在他的文章中所说的是真的,我以为我在 ASP.NET MVC 中使用了 MVC,但我真正使用的是 MVP(或 MVC 的一种调整形式)。

使用 MVC,它始终是控制器的 负责处理鼠标和 键盘事件。使用 MVP,图形用户界面 组件本身最初处理 用户的输入,但委托给 对该输入的解释 主持人。

但这并不是 ASP.NET MVC 的真正意义所在。

如果我处理鼠标和键盘事件,我喜欢在浏览器中使用 jQuery 来处理。这将用户交互与控制器分开,并在 UI 层和“业务”层之间提供更好的解耦。

如果我需要使用 AJAX 调用或 JSON 调用更新我的部分页面,我仍然需要这样做,无论我称之为 MVC 还是 MVP。

例如,ASP.NET WebForms, 尝试模拟富客户端 通过使用开发范式 视图状态。这就是为什么许多尝试 将模式应用到 ASP.NET 重点 MVP 模式,因为 MVP 模式更适合有钱人 带有 GUI 的客户端应用程序 成分。

但是,许多网络平台都接受 网络的无状态性和 放弃尝试模拟 全状态富客户端开发 环境。在这样的系统中,一个 调整后的 MVC 模式更多 适用。

很明显,Phil 将 MVC(一种调整形式)视为向更无状态、更精简的客户端的迁移,而 MVP 将更多责任放在 UI 层以提供丰富的用户体验。

这是否是一件好事是主观的。如果 ASP.NET 是 MVP 而 ASP.NET MVC 是 MVC,我会很乐意接受 MVC 首字母以放弃诸如视图状态和钝逻辑之类的东西。

【讨论】:

如果您试图决定的全部原因是,您想将某个业务层用于 Web 版本和胖客户端版本 ;-) aaak【参考方案3】:

我什至不知道“MVP”,但 haack[overflow] 有一篇很好看的文章...

Everything You Wanted To Know About MVC and MVP But Were Afraid To Ask

Haack 可能会阻止交叉链接的图像...Haack 说区别很明显 :) alt text http://haacked.com/images/haacked_com/WindowsLiveWriter/MVCandMVPPatternResources_71CE/WinMerge%20-%20%5BMVP.txt%20-%20mvc.txt%5D_3.png

【讨论】:

有趣-我以前没见过。

以上是关于MVC 优于 MVP 的优势 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

C ++中std :: thread优于pthread的优势[重复]

UDP优于TCP的优势?

在 ASP.NET 中使用 Web API 优于 Web 方法的优势是啥

使用 UTF-8 优于 UTF-16 有啥优势? [复制]

MVP 模式简单易懂的介绍方式

MVP模式