单体架构 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组织在一起,顺便替双方传递消息,仅此而已。

四、优缺点

  • 优点
    • 耦合性低
    • 方便维护
    • 代码重用性高
  • 缺点
    • 使得项目架构变得复杂
    • 对开发人员要求高

参考