前言
想必大家在初学mvc的时候或者是用了很久之后再者看八股时抛出来一些疑问:
mvc和三层架构有什么区别?
mvc包含三层架构吗?
...
今天煮波就讲一下mvc和三层架构
一、MVC框架
- 目标:分离用户界面与业务逻辑,专注于表现层的代码解耦。
- 适用场景:前端交互复杂的应用(如 Web 应用、桌面应用)。
- 核心分层:
- View:展示数据。
- Controller:处理用户输入,协调 Model 和 View。
- Model:管理数据(可能包含业务逻辑)。
二、三层架构
- 目标:整个应用程序的分层,从用户界面到数据存储全面解耦。
- 适用场景:企业级系统的全局架构设计。
- 核心分层:
- 表现层(View + Controller):用户界面(对应 MVC 中的 View + Controller)。
- 业务逻辑层(Service):处理业务规则(对应 MVC 中的部分 Model)。
- 数据访问层(DAO):操作数据库(对应 MVC 中的另一部分 Model)。
三、对比
我们来从用户注册功能的角度来观察两个模式
-
MVC :
- View:注册表单页面(HTML)。
- Controller:接收表单数据,调用服务。
- Model:
- 业务逻辑:校验用户名、密码加密(属于业务逻辑层)。
- 数据访问:将用户数据存入数据库(属于数据访问层)。
-
三层架构:
- 表现层:View(HTML) + Controller(SpringMVC 的
@Controller
)。 - 业务逻辑层:Service 类(如
UserService
处理注册逻辑)。 - 数据访问层:DAO 类(如
UserDao
操作数据库)。
- 表现层:View(HTML) + Controller(SpringMVC 的
四、如今
在复杂企业应用中,Model 会被拆分到业务逻辑层和数据访问层,此时 MVC 仅负责表现层,而三层架构覆盖整个系统。