当前位置: 首页 > 知识库问答 >
问题:

MVC、MVP、MVVM设计模式在C#编码方面有什么区别

景嘉实
2023-03-14

如果我们在Google上搜索“MVC,MVP和MVVM设计模式之间的差异”,那么我们可能会得到一些从理论上讨论MVC,MVP和MVVM设计模式之间差异的URL:

MVP

在无法通过“DataContext”绑定的情况下使用。Windows窗体就是一个很好的例子。为了将视图与模型分离,需要一个演示者。由于视图不能直接绑定到演示者,因此必须通过接口(IView)将信息传递给视图。

MVVM

用于可能通过“DataContext”绑定的情况。为什么?每个视图的各种IView接口都被删除,这意味着需要维护的代码更少。MVVM可以使用Knockout包含WPF和javascript项目的一些示例。

MVC

如果我能有一篇文章来讨论这三种设计模式(MVC、MVP和MVVM)与代码之间的区别,那就太好了。

我想获得三个类似的CRUD应用程序的源代码,它们已经由这三种设计模式(MVC,MVP&MVVM)实现。这样我就可以通过这些代码来理解应该如何为这三种设计模式(MVC,MVP和MVVM)编写代码。

因此,如果有任何这样的文章讨论代码将如何在这3种设计模式(MVC,MVP和MVVM)看起来不同,那么请将我重定向到那篇文章。

共有1个答案

孙修贤
2023-03-14

一些基本的区别可以简写为:

MVC:

传统的MVC是在

  1. 模型:用作数据的模型
  2. 视图:处理用户的视图,它可以是UI
  3. 控制器:控制模型和视图之间的交互,其中视图调用控制器来更新模型。视图可以在需要时调用多个控制器。

MVP:

与传统的MVC相似,但控制器被演示者所取代。但演示者(与控制器不同)也负责更改视图。视图通常不调用演示者。

MVVM

这里的区别是视图模型的存在。它是观察者设计模式的一种实现,其中模型中的更改也通过VM在视图中表示。例如:如果一个滑块被更改,不仅模型被更新,而且显示在视图中的数据(可能是文本)也被更新。因此存在双向数据绑定。

 类似资料:
  • 问题内容: 想要改善这篇文章吗? 提供此问题的详细答案,包括引文和答案正确的解释。答案不够详细的答案可能会被编辑或删除。 当超越RAD(拖放和配置)构建用户界面的方式时,许多工具鼓励您使用三种设计模式,分别称为Model- View- Controller ,Model- View- Presenter和Model- View-ViewModel。我的问题包括三个部分: 这些模式解决了哪些问题?

  • 问题内容: 我将启动一个Java项目来开发桌面应用程序。什么用作表示层模式(MVC,MVP,MVVM或…)? …如果可能的话,给出一些可行的小例子… :-) 问题答案: 其实,你在寻找最终的帖子是 这样回答 这个答案 从卡斯滕Lentzsch共同领导(JGoodies数据的名望)在 秋千框架和最佳实践 旋启式框架和最佳实践 主题。 你好, 多年来,我一直在编写Swing应用程序,很多人都觉得它很优

  • 本文向大家介绍说说你对MVC、MVP、MVVM模式的理解相关面试题,主要包含被问及说说你对MVC、MVP、MVVM模式的理解时的应答技巧和注意事项,需要的朋友参考一下 ickt-5: https://www.cnblogs.com/keitsi/p/5764785.html

  • 问题内容: 我目前从事WPF的大量开发工作,并已开始创建一些基本的Android应用程序。在创建WPF应用程序时,我经常使用MVVM,通常使用Prism,并且想知道是否有针对Android平台的MVVM的示例? 问题答案: 我是Android- Binding 的开发人员。就像@Brentley所说的,这是一个非常新的项目,但我确实希望获得更多的嗡嗡声和经验,以便对其进行改进。回到您的问题,我编写

  • 问题内容: 我正在学习Spring框架,目前正在阅读有关它的书。在这本书中,它说Spring单例与Java单例不同吗?这是什么意思,有什么区别?谢谢 问题答案: Java单例由Java类加载器确定范围,Spring单例由容器上下文确定范围。 从根本上讲,这意味着在Java中,可以确保单例仅在加载它的类加载器的上下文中才是真正的单例。尽管您在代码中尽力防止它发生,但其他类加载器也应该能够创建它的另一

  • 本文向大家介绍MVC、MVP和MVVM分别是什么_动力节点Java学院整理,包括了MVC、MVP和MVVM分别是什么_动力节点Java学院整理的使用技巧和注意事项,需要的朋友参考一下 一、MVC MVC模式的意思是,软件可以分成三个部分。 视图(View):用户界面。 控制器(Controller):业务逻辑 模型(Model):数据保存 各部分之间的通信方式如下。 1.View 传送指令到 Co