【发布时间】:2013-10-26 23:43:26
【问题描述】:
如果我们使用短语“MVC、MVP 和 MVVM 设计模式之间的差异”搜索 Google,那么我们可能会得到一些讨论 the difference between MVC MVP & MVVM design pattern theoretically like 的 URL:
MVP
在无法通过“dataContext”进行绑定的情况下使用。 Windows 窗体就是一个很好的例子。为了将视图与模型分开,需要一个演示者。由于视图不能直接绑定到演示者,因此必须通过接口(IView)将信息传递给视图。
MVVM
在可以通过“dataContext”绑定的情况下使用。为什么?删除了每个视图的各种 IView 接口,这意味着需要维护的代码更少。 MVVM 可以使用 Knockout 包含 WPF 和 javascript 项目的一些示例。
MVC
在视图与程序其余部分之间的连接并不总是可用的情况下使用(并且您无法有效地使用 MVVM 或 MVP)。 这清楚地描述了 Web API 与发送到客户端浏览器的数据分离的情况。 Microsoft 的 ASP.NET MVC 是管理此类情况的绝佳工具,并提供了非常清晰的 MVC 框架
但我还没有找到一篇文章从理论上讨论差异以及示例代码。
如果我能得到一篇文章来讨论这 3 种设计模式(MVC、MVP 和 MVVM)之间的区别以及代码,那就太好了。
我想获得 3 个类似 CRUD 应用程序的源代码,这些应用程序已通过这三种设计模式(MVC、MVP 和 MVVM)实现。这样我就可以通过代码了解如何为这三种设计模式(MVC、MVP 和 MVVM)编写代码。
因此,如果有任何此类文章讨论了这 3 种设计模式(MVC、MVP 和 MVVM)的代码看起来有何不同,那么请将我重定向到那篇文章。
【问题讨论】:
-
在 TechEd 2011 中有一个关于这 3 种模式的简单介绍。演讲者使用 C# 和 Visual Studio 制作并展示了相同业务模型的示例。这是channel9中的视频MVC,MVP and MVVM: A Comparison of Architectural Patterns
-
这里是文章:realm.io/news/eric-maxwell-mvc-mvp-and-mvvm-on-android。写得非常好和清晰的海事组织。它还有一个 Github 存储库,每个模式都有一个分支。
标签: c# design-patterns model-view-controller mvvm mvp