1. MVC与三层架构的关系
1.1 区别
- 从功能上看
- 三层架构是一个分层式的软件体系架构设计,适用于所有的项目
- MVC开发模式是为了让前端和业务逻辑代码和数据分开,只使用在web项目中
- 从目的上看
- 三层架构侧重的目的是项目整体的解耦
- MVC开发模式目的是为了web项目中各类职责的统一规范化,侧重的是前端页面和业务逻辑处理的一个解耦
- 从层次上看
- 三层架构是框架层面上的
- MVC开发模式是设计模式层面上的。一个软件肯定要先确定好框架,之后才有下一步的设计模式
1.2 联系
- 两者都用到了分层和解耦的思想
- 通常的MVC都是在应用三层架构的基础上的,是基于三层架构设计的
- MVC&三层架构&实现
2. MVC开发模式
-
MVC开发模式的三个层次
- M --> Model 模型:负责数据库操作和业务逻辑操作,是MVC的主体(类似于三层架构的DAL和BLL的结合,但不同于entity层)
- V --> View 视图:用户与系统之间的交互界面(类似于三层架构的UI层)
- C --> Controller 控制器:根据用户输入控制界面数据显示和更新model对象的状态,控制整个业务流程。是M和V之间的胶水,实现model层和view层的协同工作
-
web项目中的MVC
-
MVC开发模式与23种设计模式的关系
- MVC不是一种设计模式,只能算是一种开发模式或架构模式
- MVC和23种设计模式是同一个层面上的,都是为了规范化代码
- MVC是23种设计模式中几种模式的变形和整合
3. 三层架构
-
三层架构中的三层
- 表现层/界面层/web层(UI):User Interface。与用户交互的界面,用于接受用户输入的数据和显示处理后的信息。对应SSM框架中的SpringMVC
- 业务逻辑层(BLL):Business Logic Layer。UI层与DAL层的桥梁,实现具体的业务逻辑操作。对应SSM框架中的Spring
- 数据访问层(DAL):Data Access Layer。操作数据库,实现对数据库最基本的增删改查(CRUD)。对应SSM框架中的Mybatis
-
用户&三层架构&数据库
-
web项目中的三层架构
-
三层架构的作用、目的:主要作用和目的就是解耦,任何一层的修改都不会影响其他层
-
三层架构的优势
- 结构清晰,耦合度低
- 可维护性、可扩展性高
- 利于开发任务同步进行,容易适应需求变化
-
实体层(entity):它不属于三层中的任何一层,但是它是必不可少的一层
- entity层有以下几个作用
- 实现面向对象思想中的“封装”
- 贯穿于三层之间,在三层之间传递数据,实现三层的紧密联系
- 可以简单理解为一张数据库表对应一个实体类,数据库表中每一个字段对应实体中每一个属性
- 三层之间的单向数据传递(UI–>BLL–>DAL)是靠变量或实体作为参数来传递的,从而实现三层之间的联系以及功能的实现
- 三层与entity层的依赖关系
- entity层有以下几个作用