编程模式:MVC vs MVP

Posted

技术标签:

【中文标题】编程模式:MVC vs MVP【英文标题】:Programming Pattern: MVC vs MVP 【发布时间】:2011-01-25 14:00:12 【问题描述】:

我对这两种编程模式有点困惑:MVC 和 MVP。

它们之间的主要区别是什么?我一直在网上搜索,我为它们做了几个例子,但我更加困惑,因为在一些示例网页中,MVP 使用超过 2 个接口来与视图层通信演示者(一些甚至有完全空白的接口,仅声明),但在其他接口中,只需两个接口即可将数据从演示者传输到视图。应用该模式的正确方法是什么?

另一方面,我在 MVC 上工作了一段时间,但直到现在,我才意识到我可能一直以错误的方式应用该模式。我有这个:

模型:行为类似于业务对象的 C# 类。 控制器:使用模型对象填充或操作它们的 C# 类。 视图:C# aspx 页面显示模型对象;控制器负责在操作和/或填充数据后将模型对象发送到该层。

希望你能解开我的疑惑。提前致谢。

【问题讨论】:

试试这个:***.com/questions/2056/… What are MVP and MVC and what is the difference?的可能重复 【参考方案1】:

MVC

View 负责渲染 UI 元素。控制器响应 UI 操作。模型处理业务行为。控制器负责要显示哪个视图。整个业务逻辑层可以用模型来表示。视图和模型紧密耦合。

MVP

View 负责渲染 UI 元素。控制器的角色被演示者取代。演示者调解模型和视图之间的操作。没有将视图绑定到视图模型的机制。所以我们依靠每个视图来实现与视图的接口

【讨论】:

以上是关于编程模式:MVC vs MVP的主要内容,如果未能解决你的问题,请参考以下文章

MVC vs MVP vs MVVM

Android MVP模式的初识

从最简单的HelloWorld理解MVP模式

Android MVC模式和MVP模式的区别

框架模式:MVC、MVP、MVVM、MVPVM

框架模式MVC与MVP在Android中的应用