如何简单的理解JavaWeb中的mvc?

来源:互联网 发布:帕克斯软件 编辑:程序博客网 时间:2024/06/10 20:17

从刚开始编程,就接触到MVC这个概念。最直观的理解就是Model(模型数据)、View(视图)、Controller(控制器),但是mvc究竟是什么?

1. 简介

MVC最早提出是在客户端软件之中,以电脑附带的计算器为例:
1. 计算器的界面就是View
2. 用户点击 “1 + 2 =”的时候,调用了Controller进行逻辑运算。
3. controller算出了数据结果,也就是Model
4. Model的数据改变了,就会通知到View,这时候计算器的结果区域就会显示出结果了。

2. MVC究竟是什么?

那么MVC是设计模式吗?还是框架?觉得两种都不是,而是一种架构,一个架子,可以分层的去设计,使各个层面解耦合。例如计算加法的逻辑写错成了乘法,那么只需要去更改Controller这一层就好了,而不会影响到View和Model。

MVC还有一些衍生的概念MVP,MVVM等。不同的情景下,用不同的方式去实现。

3. MVC和三层架构是什么关系?

三层架构:

Presentation tier+ Application tier + Data tier(展现层,应用层,数据访问层)

实际上MVC只存在三层架构的展现层。

M

Model实际上是数据模型,是包含数据的对象(Value Object)。在springmvc里有一个专门的类叫Model,就是专门存放数据的,用来和View之间进行传值。也可以理解为controller层返回的值对象。

V

View包含JSP、freemarker、Velocity、Thymeleaf等,也就是指的对象。

C

当然就是springmvc中的controller类了,用来处理逻辑。controller中一般调用了service等进行了业务逻辑的处理,拿到返回的数据模型交给页面来进行数据展示。

原创粉丝点击