浅析mvvm模式和mvc模式的区别和联系

Posted 会飞的一棵树

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浅析mvvm模式和mvc模式的区别和联系相关的知识,希望对你有一定的参考价值。

三层架构与MVC模式

三层架构

三层架构是一种以实现“高内聚,底耦合”为目标,的代码架构方法,它将整个业务分为,表示层,业务层,数据访问层(Dao层)。
image

MVC模式

MVC模式是一种软件设计的典范,一种组织代码的方法。

M 是 model 模型
V 是 view 视图
C 是 control 控制器

控制器是用来将不同的view和不同的model组织在一起。且mvc往往在三层架构中的表现层使用,如SpringMVC,Struct2等是优秀的用于表现层的mvc框架。MyBatis是常用于Dao层的框架。

区别

MVC是一种设计模式,是解决方案。三层架构是种软件架构方法。

MVVM模式

MVVM模式也是一种软件的架构模式,在它是(Model-View-ViewModel)的缩写,其核心是VM,VM是视图与模型之间的桥梁,它实现了视图与模型的相互映射。
image
在MVVM中模型的改变会引起视图的改变,视图的改变会引发模型的改变。
image

与MVC的异同

  1. MVVM没有MVC模式的控制器,也没有MVP模式的presenter,有的是一个绑定器。在视图模型中,绑定器在视图和数据绑定器之间进行通信。
  2. MVVM模式不同于MVC,在MVVM模式中,将ViewModel层绑定到View层后,它基本不使用点击事件,而是使用命令(Command)来控制。数据的显示也是不同于MVC,而是使用Binding来绑定相关数据。

MVVM实例

如VUE中的数据的双向绑定就是MVVM的一个应用:

<!-- 该dom下的div可以看作是view -->
<div id="example">{{message}}</div>

<script>
// data 可以看作是数据模型 model
// Vue对象vm就是ViewModel
var vm = new Vue({
  el: \'#example\',
  data: {message:\'zhangsan\'}
})
</script>

以上是关于浅析mvvm模式和mvc模式的区别和联系的主要内容,如果未能解决你的问题,请参考以下文章

浅谈MVCMVPMVVM架构模式的区别和联系

MVC/MVVM模式特点及区别

MVC/MVVM模式特点及区别

浅谈前端MVC/MVVM模式特点及区别

mvvm框架和mvc有啥不同

浅谈开发中的MVVM模式及与MVP和MVC的区别