前言
MVC(Model View Controller)是软件工程中的一种软件架构模式,它把软件系统分为模型、视图和控制器三个基本部分。用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。
```
![1](1.png)
### 2.1 MVC每层之间的逻辑关系
![2](2.png)
```
M:Model,模型
JavaBean 完成具体的业务操作,如:查询数据库,封装对象
V:view视图
JSP、HTML等来进行数据展示
C:Controller控制器。
Servlet获取View的请求,调用模型将数据交给视图进行展示
MVC架构模式就是通过三层架构演变过来的,
M和V其实就是三层架构中的web显示层 将显示层一分为二。
```
### 2.2 优缺点
> 【优点】
>
> 1. 耦合性低,方便维护,可以利于分工协作
> 2. 重用性高
>
> 【缺点】
>
> 1. 使得项目架构变得复杂,对开发人员要求高
## 3.三层架构
```
三层架构(3-tier architecture) 通常意义上的三层架构就是将整个业务应用划分为:界面层[表示层](User Interface layer)、业务逻辑层(Business Logic Layer)、数据访问层(Data access layer)。
区分层次的目的即为了“高内聚低耦合” 的思想。在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。
```
![3](3.png)
## 4.MVC与三层架构的区别
![4](4.png)
```
1.MVC架构中的"显示层"和"控制层"——》三层架构中的表现层。
2.MVC架构中的"模型层JavaBean"——》三层架构中的业务逻辑层和数据访问层
总结:MVC架构模式是一个大的概念,而三层架构你可以把它理解为对MVC模式架构的设计的思想,将来在编写代码时要遵循三层架构模式来编写。
三层架构是指软件系统的整体设计分层:业务逻辑层、数据持久化层和表现层。而MVC设计模式只体现在表现层中,即将表现层又分为模型、视图和控制器。
=================总而言之言而总之=================
无论是MVC还是三层架构,都是一种规范,都是奔着"高内聚,低耦合"的思想来设计的。三层中的UI和Servlet来分别对应MVC中的View和Controller,业务逻辑层是来组合数据访问层的原子性功能的。
在三层中,业务逻辑层和数据访问层要遵循面型接口编程的。这种接口定义和具体实现逻辑的分开,非常有利于后续扩展和维护!
```
```
MVC 和 三层架构 原理一致
三层:
显示层(JSP|servlet)
业务逻辑层:biz|service ---职责:组装数据---得到新数据。
事务处理:多个条件进行执行时,需要一起成功,或者一起失败。
数据访问层:对数据进行CURD insert update delete select
MVC:
Model:数据访问层 业务逻辑层 entity DBHelper 工具类
View:视图层 (JSP)
controller:控制层 (serlvet|filter|listener)
```
一、MVC是什么?
MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。
MVC模式最早为Trygve Reenskaug提出,为施乐帕罗奥多研究中心(Xerox PARC)的Smalltalk语言发明的一种软件设计模式。
MVC可对程序的后期维护和扩展提供了方便,并且使程序某些部分的重用提供了方便。而且MVC也使程序简化,更加直观。
控制器Controller:对请求进行处理,负责请求转发;Servlet
视图View:界面设计人员进行图形界面设计;JSP
模型Model:程序编写程序应用的功能(实现算法等等)、数据库管理;Java对象
用于处理管理数据库、处理业务逻辑、封装实体数据 JavaBean
注意,MVC不是Java的东西,几乎现在所有B/S结构的软件都采用了MVC设计模式。但是要注意,MVC在B/S结构软件并没有完全实现,例如在我们今后的B/S软件中并不会有事件驱动!