Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Model view controller MVC和MVVM之间有什么不同_Model View Controller_Mvvm - Fatal编程技术网

Model view controller MVC和MVVM之间有什么不同

Model view controller MVC和MVVM之间有什么不同,model-view-controller,mvvm,Model View Controller,Mvvm,有人能解释这两者的区别吗 MVC(模型视图控制器) 及 MVVM(ModelView-ViewModel)体系结构 ?MVVM基于MVC设计模式 MVVM是一种更专门用于UI开发平台的实现。 GUI开发和后端开发之间的分离使得这些UI开发平台中的开发过程更加容易 关于差异的更多信息,另一个主题已经存在:由于MVC和MVVM完全面向不同的应用范例,即ASP.NET MVC For web和MVVM desktop,它们需要以明显不同的方式运行,最显著的区别是来自MVC的控制器和来自MVVM的Vie

有人能解释这两者的区别吗

MVC(模型视图控制器)

MVVM(ModelView-ViewModel)体系结构


?MVVM基于MVC设计模式

MVVM是一种更专门用于UI开发平台的实现。 GUI开发和后端开发之间的分离使得这些UI开发平台中的开发过程更加容易


关于差异的更多信息,另一个主题已经存在:

由于MVC和MVVM完全面向不同的应用范例,即ASP.NET MVC For web和MVVM desktop,它们需要以明显不同的方式运行,最显著的区别是来自MVC的控制器和来自MVVM的ViewModel

MVC中的控制器接受HTTP请求,从模型中获取数据,并将模型路由到视图进行输出。在桌面应用程序中,没有路由或URL;但桌面应用程序仍然具有导航功能,导航是UI的一部分,因此需要成为良好UI模式的一部分。ViewModels是完成此任务的一部分,因为MVVM中的ViewModel除了获取数据和数据绑定外,还负责执行或公开包含所有UI逻辑的命令

视图的行为必须不同,因为web和桌面应用程序使用非常不同的方式来呈现用户交互信息。此外,http上的应用程序被认为是无状态的,而桌面应用程序在LAN上具有完全的连接,可以轻松地包含和传输大量数据。MVC中的视图仅显示数据并执行基本的客户端UI任务,通常使用JavaScript(表单提交、验证、效果等)。另一方面,MVVM中的视图具有丰富的数据绑定和验证框架,当与ViewModel公开的业务逻辑和导航相结合时,将带来非常丰富的用户体验

在这两种模式中,模型的行为都是相同的——它们充满了数据(有时是逻辑)。您可能希望在模型级别使用其他模式,以便更好地组织代码、维护和更好地分离关注点。带有实体框架的存储库模式是一种流行的模式,Julie Lerman在关于它的一系列文章中有很好的解释

MVC和MVVM中都存在ViewModel。尽管名称相同,但两种模式中的ViewModels在工作方式上存在显著差异

MVC中有视图模型,但它们的职责与MVVM视图模型不同

MVC ViewModel是两个或多个模型的组合(组合在一起),或者是一个或多个模型的自定义子集,提供其相应视图所需的所有信息。它基本上是一款混合型车型,最好的部分是——视图不知道区别。

在MVVM中,ViewModel与MVC中的功能相同,但它也承担控制器的责任。

MVC模型和MVVM模型


您是否检查了现有答案?5年前被问到,看了146738次,你怎么会错过它?