一、简介
-
模型-视图-控制器模式,也称为MVC模式。是一种业务逻辑、数据、界面显示分离的方法组织代码。将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。
-
MVC把软件系统分为以下三个基本部分:
- 模型(Model) 封装了应用程序的数据和一般他们会组成的POJO;负责存储系统的中心数据
- 视图(View) 是负责呈现模型数据和一般它生成的HTML输出,客户端的浏览器能够解释;将信息显示给用户(可以定义多个视图)
- 控制器(Controller) 处理用户输入的信息。负责从视图读取数据,控制用户输入,并向模型发送数据,是应用程序中处理用户交互的部分。负责管理与用户交互控制
-
视图和控制器共同构成了用户接口。
- Controller: 接收前台传递过来的数据,对数据进行封装,然后交给Service层完成业务逻辑
- Service: 可以调用Dao层完成增删改查
- 在三层架构里面是面向接口编程,Service层能够为Controller层提供的所有功能都写到Service层接口
二、特点(两种分离)
1 视图和数据模型的分离
- 使用不同的视图对相同的数据进行显示
- 分离可视和不可视的组件,能够对模型进行独立测试
- 因为分离了可视组件减少了外部以来利于测试(数据库也是一种外部组件)
2 视图和表现逻辑(Controller)的分离
- Controller是一个表现逻辑的组件,并非一个业务逻辑组件
- MVC可以作为表现模式也可以作为建构模式,意味着Controller也可以是业务逻辑
- 分离逻辑和具体展示,能够对逻辑进行 独立测试
三、优缺点
1、优点
- 耦合性低
- 重用性高
- 生命周期成本低
- 部署快
- 可维护性高
- 有利于软件工程化管理
2、缺点
- 没有明确的定义
- 不适合小型、中等规模的应用程序
- 增加系统结构和实现的复用性
- 视图与控制器间的过于紧密的连接
- 视图对模型数据的低效率访问
- 一般高级的界面工具或构造器不支持模式