单体架构 MVC
MVC,即 Model(模型)、View(视图)和 Controller(控制)。
一、演变历史
早期只有 Servlet,使用 response 输出数据
增加 JSP 后,页面的开发极大地简化了,
但 JSP 文件中,各种代码混乱放置,难以维护,难以分工协作
再后来,Java 的 Web 开发借鉴了 MVC 开发模式,使得程序的设计更加合理
二、MVC
1. M
- Model,模型
- 在 Java Web 中,为 Java Bean
- 作用:
- 完成具体的业务操作
- 通常又再分为数据模型和业务模型,其中
- 数据模型:数据实体类
- 业务模型:对数据实体类的操作
2. V
View,视图
在 Java Web 中,为 JSP
作用:
- 展示数据
3. C
Controller,控制器
在 Java Web 中,为 Servlet
作用:
- 获取用户的输入
- 调用模型
- 将数据交给视图
4. MVC 的目标
MVC 的目标是将用户界面与业务逻辑分离,从而使代码的可扩展性、可复用性、可维护性、灵活性更强。
三、正确使用 MVC
对于 M、V 和 C 三层的正确处理方式是:
将代码写到对应的位置,不在视图中写逻辑,不在模式中写页面
Controller 层主要用于调度 View 和 Model,将用户界面和业务逻辑合理组织在一起,因此内容能少则少
比方说,有一个View会提交数据给Model进行处理以实现具体的行为,View通常不会直接提交数据给Model,它会先把数据提交给Controller,然后Controller再将数据转发给Model。
假如此时程序业务逻辑的处理方式有变化,那么只需要在Controller中将原来的Model换成新实现的Model就可以了,控制器的作用就是这么简单, 用来将不同的View和不同的Model组织在一起,顺便替双方传递消息,仅此而已。
四、优缺点
- 优点
- 耦合性低
- 方便维护
- 代码重用性高
- 缺点
- 使得项目架构变得复杂
- 对开发人员要求高