MVC和MVP的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MVC和MVP的区别相关的知识,希望对你有一定的参考价值。

区别在于

从上图可以看出:MVC的耦合性还是较高的,View可以直接访问Model,导致3者之间构成了回路。所以两者的主要区别是,MVP中View不能直接访问Model,需要通过Presenter发出请求,View与Model不能直接通信。

2.与MVVM(Model-View-ViewModel)的区别

MVVM与MVP非常相似,唯一区别是View和Model进行双向绑定,两者之间有一方发生变化则会反应到另一方上。MVVM模式有点像ListView与Adapter、数据集的关系,当数据集发生变化时,调用Adapter的notifyDataSetChanged之后View就直接更新,同时它们之间又没有耦合,使得ListView变得更加灵活。

参考技术A MVP与MVC有着一个重大的区别:在MVP中View并不直接使用Model,它们之间的通信是通过Presenter (MVC中的Controller)来进行的,所有的交互都发生在Presenter内部,而在MVC中View会直接从Model中读取数据而不是通过 Controller。本回答被提问者和网友采纳

MVP 和 MVC 有啥区别? [复制]

【中文标题】MVP 和 MVC 有啥区别? [复制]【英文标题】:What is the difference between MVP and MVC? [duplicate]MVP 和 MVC 有什么区别? [复制] 【发布时间】:2011-03-14 05:46:33 【问题描述】:

可能重复:What are MVP and MVC and what is the difference?

我看不出 MVP 和 MVC 软件架构(控制器实现中介者模式的 MVC)之间有任何区别,除了您调用中介者的名称(演示者与控制器)

有人能解释清楚吗?

我很在意,因为我通过 cocoa 对 MVC 有一个合理的理解,我想知道这些知识将如何增长才能理解 MPF/C#/.NET

【问题讨论】:

不使用 google 搜索是一回事,但不使用 SO 的搜索只是悲哀...***.com/search?q=difference+between+MVP+and+MVC 实际上我得到了一堆糟糕的谷歌点击,我发现的 3 篇文章是由显然不了解该主题的人撰写和回答的。感谢链接 【参考方案1】:

Darin 提供了一个很好的链接。我想说有几个关键的区别,但有很多相似之处。 MVP 的观点甚至比 MVVC 的观点更简单——它不知道模型。恕我直言,这使得测试涵盖的所有内容变得更容易。此外,它还可以更轻松地提供替代视图,例如,如果您需要 GUI 和 CLI。但是,阅读这篇文章,它很好地涵盖了这个主题。

【讨论】:

中介者模式 MVC 在 M 和 V 之间没有连接

以上是关于MVC和MVP的区别的主要内容,如果未能解决你的问题,请参考以下文章

MVP 和 MVC 有啥区别? [复制]

MVC和MVP架构之间的区别[重复]

MVC和MVP到底有什么区别呢?

MVC和MVP的区别

MVP MVC 和 MVVM 的区别

MVC, MVP, MVVM比较以及区别