可能重复:
What are MVP and MVC and what is the difference?
mvc and mvp pattern
民间,
使用MVC而不是MVP有哪些好处?我喜欢我不必使用MVP框架,可以通过接口和类实现。我仍然将MVC所关注的问题分开,并进行单元测试。使用MVC而不是MVP有什么好处?
答案 0 :(得分:5)
我甚至都不知道“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
答案 1 :(得分:1)
由于我对重复的评论进行了详细审查,因此我只会参考这些问题并将其留给“更高权力”,以便在他们认为合适时关闭:P
What are MVP and MVC and what is the difference?
答案 2 :(得分:0)
人们在首字母上太过挂了,有时会TLA。
如果Phil Haack在他的文章中说的是真的,我认为我在ASP.NET MVC中使用MVC,但我真正使用的是MVP(或MVC的调整形式)。
使用MVC,它始终是控制器的 有责任处理鼠标和 键盘事件。使用MVP,GUI 组件本身最初处理 用户的输入,但委托给 对该输入的解释 主持人。
但这不是ASP.NET MVC的真正意义所在。
如果我处理鼠标和键盘事件,我喜欢在浏览器中使用jQuery。 将用户交互与控制器分开,并在UI层和“业务”层之间提供更好的解耦。
如果我需要使用AJAX调用或JSON调用更新我的页面的一部分,无论如何我仍然需要这样做,无论我称之为MVC还是MVP。
很明显,Phil认为(一种经过调整的形式)MVC可以转移到更无状态,更薄的客户端,而MVP则在UI层上承担更多责任,以提供丰富的用户体验。ASP.NET WebForms,例如, 试图模仿富客户端 通过使用的发展范式 ViewState中。这就是许多尝试的原因 将模式应用于ASP.NET重点关注 MVP模式因为MVP 模式更适合富人 带GUI的客户端应用程序 组件。
然而,许多网络平台都拥抱 网络的无国籍性质 放弃试图模拟一个 全州富客户发展 环境。在这样的系统中,a 调整MVC模式更多 适用。
这是否是好事是主观的。如果ASP.NET是MVP而ASP.NET MVC是MVC,我很乐意接受MVC首字母放弃像viewstate和obtuse逻辑这样的东西。