7

可能的重复:
什么是 MVP 和 MVC,有什么区别?
mvc 和 mvp 模式

伙计们,

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

4

3 回答 3

5

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

你想知道的关于 MVC 和 MVP 但又不敢问的一切

冒着哈克阻止交叉链接图像的风险......哈克说区别很明显:) alt text http://haacked.com/images/haacked_com/WindowsLiveWriter/MVCandMVPPatternResources_71CE/WinMerge%20-%20%5BMVP.txt%20 -%20mvc.txt%5D_3.png

于 2009-07-30T16:54:08.030 回答
1

由于我已经通过我对重复的评论进行了审查,因此我将仅参考这个 SO 问题并将其留给“更高权力”在他们认为合适的情况下关闭:P
什么是 MVP 和 MVC,有什么区别?

于 2009-07-30T16:57:23.890 回答
0

人们有时会过于依赖首字母缩写和TLA 。

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

使用 MVC,处理鼠标和键盘事件始终是控制器的责任。使用 MVP,GUI 组件本身首先处理用户的输入,但将输入的解释委托给演示者。

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

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

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

例如,ASP.NET WebForms 尝试通过使用 ViewState 来模拟富客户端开发范例。这就是为什么许多将模式应用于 ASP.NET 的尝试都集中在 MVP 模式上,因为 MVP 模式更适合具有 GUI 组件的富客户端应用程序。

然而,许多 Web 平台都接受了 Web 的无状态特性,并放弃了尝试模拟全状态富客户端开发环境的尝试。在这样的系统中,经过调整的 MVC 模式更适用。

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

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

于 2009-07-30T17:04:49.257 回答