MVC与三层架构之间的关系
一、 MVC
MVC是软件工程中的一种软件架构模式,分为Model(模型)、View(视图)、Controller(控制器)
1. Model
model是应用对象,程序员编写程序应有的功能(实现算法等等)、数据库专家进行数据管理和数据库设计(可以实现具体的功能)
2. View
view负责显示数据和提交数据
3. Controller
Controller定义用户界面对用户输入的响应方式,主要是用作辅助捕获请求并控制请求转发
4. 为什么要用MVC
- 可以为一个模型提供多个不同的视图表现形式;
- 在为一个模型创建新的视图时无需重写模型
- 使用MVC将model、view、controller三者进行分离可以降低层与层之间的依赖,做到高内聚低耦合
- 有利于标准化
- 在开发时只需要关注整一个结构中的某一部分
二、三层架构
三层架构通常指将整个业务应用分为三个部分:展示层(UI)、数据访问层(DAL)、业务逻辑层(BLL)
1. 展示层
主要是指与用户交互的界面。用于接收用户输入的数据和显示处理后用户需要的数据。
2. 数据访问层
也叫持久层。访问数据库,主要实现对数据的增删查改。将存储在数据库中的数据提交给业务层,同时将业务层处理的数据保存到数据库。
3. 业务逻辑层
在展示层与数据访问层之间,主要实现业务逻辑,具体包含:验证、计算、业务规则等。
4. 实体层
不是说三层架构吗?为什么会多出一层?其实实体层不属于三层中任何一层,但它是必不可少的
它实现了面向对象思想中的“封装”
连接三层,在三层之间传输数据
5. 三层之间的依赖关系
三、MVC与三层架构之间的关系
MVC不是三层架构
三层架构是一个分层式的软件体系架构设计,它可适用于任何一个项目。
MVC是一个设计模式,它是根据项目的具体需求来决定是否适用于该项目。
但它们都有同一个作用就是解耦合,只是划分的界限不一样罢了
三层架构中的UI对应MVC中的view(jsp),都是用于显示以及获取界面的数据;三层架构中的BLL层和DAL层对应MVC中的Model(javabean)层都是用于处理上层传递来的数据以及从数据库获取的数据的;MVC中的Controller(Servlet)最多算是三层架构中的UI的一部分,也就我们常说的是Servlet。