MVC / MVP / MVVM是什么鬼?

44

我最近参与了一个 .Net WPF 项目,构建了一个零售销售系统,在此项目中我首次使用了 MVP 模式。花了一点时间才理解了这种方法的变化,但是一旦理解后,我觉得概念非常棒!

我的问题是:MVC、MVP 和 MVVM 有什么区别?如果有明显区别,那么是否有指导方针可以告诉我们应该在何时使用一种模式而不是另一种模式呢?

如果有人能够提供指导,或者指向解释区别的文章,我将不胜感激。


如果WPF默认采用MVVM模式,作为Silverlight,那么你如何使用MVP? - user2402179
1
可能是什么是MVP和MVC,它们有什么区别?的重复问题。 - Mast
2个回答

18

4

通过查看特定框架中实现的特定模式,很难理解模式之间的差异。这篇MSDN文章WPF MVVM参考了Martin Fowler的原始文章,解释了一种通用方法:

早在2004年,Martin Fowler发表了一篇关于名为Presentation Model(PM)的模式的文章[...]认为MVVM是更通用的PM模式的一种专业化,为WPF和Silverlight平台量身定制。

为了理解不同的模式,查看马丁·福勒对不同方法的描述是很有用的。他的被动视图模式是MVP方法。他的监督控制器模式是MVC方法。他的表示模型模式是MVVM方法。这篇较旧的文章讲述了这些模式的演变。

还可以通过不同语言实现来帮助理解。该文章使用ZK Java AJAX框架实现事件驱动GUI模式在现代Java框架中对比了上述马丁·福勒的三种模式。即使它是一种不同的语言和不同的框架与WPF相比,看到模式而不是模式的实现以在不同的语言中完成它可能会有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接