MVVM模式与MVC模式的区别

本文介绍了MVC和MVVM模式的区别。MVC模式中,模型、视图和控制器各自分离,实现关注点分离;MVVM模式下,视图和模型通过视图模型双向绑定,适合数据驱动的场景。MVVM具有低耦合、可重用性高、易于测试等优点,而MVC则在小型项目中可能不适用,视图与控制器间的紧密联系可能影响重用性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.MVC
MVC是Model View Controller的缩写
Model:模型层,是应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存储数据。
View:视图层,用户界面渲染逻辑,通常视图是依据模型数据创建的。
Cotroller:控制器,是数据模型与视图之间通信的桥梁,通常控制负责从事图读取数据,控制用户输入,并向模型发送数据。
MVC的特点
实现关注点分离,即应用程序中的数据模型与业务和展示逻辑解耦。就是将模型和视图之间实现代码分离,松散耦合,使之成为一个更容易开发、维护和测试的客户端应用程序。
MVC的应用
主要用于中大型的分层开发
2.MVVM
MVVM是Model-view-ViewModel的简写,即模型-视图-视图模型。
.Model:模型,指的是后端传递的数据
.View:视图,指的是所看到的页面
.ViewModel:视图模型,mvvm模型的核心,它是连接view和model的桥梁。主要用来处理业务逻辑
它有两个方向
.一是将模型转化成视图,即将后端传递的数据转化成所看到的的页面。实现方式是:数据绑定
.二是将视图转化成模型,即将所看到的的页面转化成后端的数据。实现方式是:DOM事件监听
这两个方式都实现的,就是数据双向绑定
MVVM的特点:在MVVM的框架下,视图和模型不能直接通信的,他们通过ViewModel来通信,ViewModel通常实现一个observer观察者,当数据发生变化,ViewModel能够监听到数据的这种变化,然后通知对应的视图作自动更新,而当用户操作视图,ViewModel也能监听到视图的变化,然后通知数据做改定,这实际就显示了数据双向绑定。并在MVVM中的View和ViewModel可以互相通信
MVVM适用场景:适用于数据驱动的场景,数据操作教多的场景。
MVC和MVVM的优缺点
MVVM:
.低耦合,视图可以独立于Model变化和修改,一个ViewModel可以绑定到不同的View上,当View变化的时候Model可以不变,当Model变化的时候View也可以不变
.可重用性,可以把一些视图逻辑放在一个ViewModel里面,让很多view重用这段视图逻辑
.独立开发,开发人员可以专注于业务逻辑和数据开发,设计人员可以专注于页面设计,使用Expression Blend可以很容易设计界面并生成xml代码
.可测试,界面向来是比较难于测试的,而现在测试可以针对ViewModel来写
.双向数据绑定,它实现了View和Model的自动同步,当Model的属性改变时,不需要手动操作Dom元素,来改变View的显示,而是改变属性后属性对应View层显示会自动改变
MVC的优点:
.耦合度低,视图层和业务层分离
.重用度高
.生命周期成本低
.部署快
MVC的缺点
.不适合小型项目开发
.视图域控制器间的过于紧密的连接,视图与控制器是相互分离的,但却是联系紧密的部件,妨碍了他们的独立重用
.降低了视图对模型数据的访问,依据模型操作接口的不同,视图可能需要多下次调用才能获得足够的显示数据。对未变化数据的不必要的频繁访问,也将损害操作性能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值