MVC模式的意思是,软件可以分成三个部分。
1.视图(View):用户界面。
2.控制器(Controller):业务逻辑
3.模型(Model):数据保存
一、各部分之间的通信方式如下:
1.View 传送指令到 Controller
2.Controller 完成业务逻辑后,要求 Model 改变状态
3.Model 将新的数据发送到 View,用户得到反馈所有通信都是单向的。
二、互动模式
接受用户指令时,MVC 可以分成两种方式。一种是通过 View 接受指令,传递给 Controller。
另一种是直接通过controller接受指令。
首先我们先从字面上理解一下 MVC :
M----> model 模型层(一般用于数据存储,存储一些业务逻辑),也就是我们说的数据模型。
V-----> view 视图层(界面),用来展示数据。
C-----> controller 控制层(管理),调度业务逻辑,联系数据和模板之间工作的逻辑代码。
MVC 是一种设计思想:
要了解这种思想,我们先来了解一下web 开发经历的几个阶段:
web 开发经服务器只读文件发送的时代, 然后经历了在服务器端拼接字符串生成html发送的时代,接着经历了分布式任务交给浏览器执行的时代,需求会不断的变化, 自然引入了模板, 也就有了分离的思想.
所以我们很自觉的将数据分离出来, 模板就是试图, 中间的逻辑代码就是控制器.
接下来我们可以这样理解MVC:
所谓的MVC就是 我们把网页代码按照视图 ,数据模型 和 控制器的方式进行分离;视图控制网页格式,数据模型控制数据,控制器就是联系数据和模板之间如何工作的逻辑代码。
MVC的处理过程:
首先控制器接受用户的请求,调用相应的模型来进行业务处理,并返回数据给控制器。控制器调用相应的视图来显示处理的结果。并通过视图呈现给用户。
view发送指令到controller--->controller完成逻辑之后,要求model改变状态--->model将新的数据发送到view,用户得到反馈。
MVC所有的通信都是单向的;
MVVM是MVC的变种和进阶,我们从字面上了解一下MVVM :
M----> model 模型层(一般用于数据存储,存储一些业务逻辑),也就是我们说的数据模型。
V-----> view 视图层(界面),用来展示数据。
VM--> ViewModel(视图模型) 也就是$scope。
在实际应用中,更多的是进行页面交互,而最后一次性向服务器提交处理(弱化了MVC中控制器的功能),增强了视图与模型的使用,因此将此称之为MVVM.
以前有人说过一句话:任何一个不能做的事情只要在中间加一层就可以实现了--我们在model 和 view 中间添加了一层ViewModel。