MVC设计模式与三层模式的理解
2019-08-15 本文已影响0人
pujess
引入
先看使用MVC设计模式的一个例子:一个学生管理系统通过实现对学生信息的查询显示。先忽略图中JavaWeb的三层框架,只看MVC设计模式。
MVC设计模式.jpg
可能大家会很懵,啥是MVC,啥是三层架构,放在一起傻傻分不清。不着急,且慢慢看。
MVC是什么?
——它是一种设计模式!
何谓设计模式?设计模式就是用让代码更容易让人理解的方式写代码!比如说我可以把所有功能都写在同一个函数里面像汇编语言一样,可是那样很难让人理解对吧,所以分函数、分对象来设计代码就会容易理解容易编写代码。这就是设计模式。
而MVC就是一种为了让代码更容易理解而产生的设计模式,它把代码类型给划分成三层:
MVC | 划分依据 |
---|---|
View层 | 是应用程序中处理数据显示的部分。 通常视图是依据模型数据创建的。 |
Control层 | 是应用程序中处理用户交互的部分。 通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。 |
Model层 | 是应用程序中用于处理应用程序数据逻辑的部分。 通常模型对象负责在数据库中存取数据。 |
- View视图层,表示代码都是用于展示数据和界面的
- Control层,表示代码都是用于处理企业数据和业务规则的
- Model层,表示代码都是接受用户的输入并调用模型和视图去完成用户的需求,本身并不处理业务逻辑!
MVC
JavaWeb三层架构又是什么?
其实是一种javaWeb常用的体系架构,虽然也是用某一层来表示某一类代码的功能,但是划分不一样
三层模式
MVC与三层模式的联系与区别
如何理解三层架构与MVC_百度经验
三层模式是体系结构模式,MVC是设计模式(实际上体系结构和设计模式都是对代码功能的划分——他们的作用都是为了降低系统耦合度)
三层模式又可归于部署模式(侧重于业务逻辑与数据),MVC可归于表示模式(侧重于界面与页面逻辑控制)
MVC与三层模式的理解
无论是体系结构模式还是设计模式,它的作用都是为了降低系统耦合度,也就是说把系统代码给划分成几个互不相关的部分,不同部分解决不同问题,每一个部分都可以从一个特定的输入得到一个特定的输出,部分之间联系就是靠一个的输出即为另一个的输入的方式。
MVC | 接受上层输入 | 对上层输出 | 对下层输入 | 接受下层输出 | 作用 |
---|---|---|---|---|---|
View层 | 客户端的请求(request) | 返回一个应答response(新的页面、跳转) | 无 | 收到一个下层返回的应答 | 1.提供客户端给控制层传参的入口; 2.展示内容给客户端 |
Control层 | 客户端在返回的视图层发出的请求 | 返回一个应答 | 传入调用需要处理的参数到模型层 | 接受下层返回的处理结果 | 调用模型层去处理业务并转发给视图层展示 |
Model层 | 接受控制层传入的参数 | 无 | 无 | 处理业务规则 |
可以看到用户在客户端(浏览器)可以访问控制层,看到视图层
三层模型 | 接受上层输入 | 对上层输出 | 对下层输入 | 接受下层输出 | 作用 |
---|---|---|---|---|---|
UI层 | 客户端的请求(request) | 返回一个应答response(新的页面、跳转) | 传入调用需要处理的参数到业务层 | 收到一个下层返回的应答 | 1.展示内容给客户端 2.调用下层处理业务 |
业务逻辑层 | 接受UI层传入的参数 | 返回处理业务的结果 | 传入调用需要处理的参数到数据访问层 | 接受下层返回的处理结果 | 1.处理业务规则 2.调用下层获取数据 |
数据访问层 | 接受上层传入的参数 | 返回数据库访问结果 | 无 | 无 | 获取数据库数据 |