MVC模式和三层架构

186 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第11天,点击查看活动详情

MVC模式

1.什么是MVC模式?

MVC 三个字母分别是modle、view、controller三个单词:模型,视图,控制器。

2. 学校教的MVC模式

在学校的JavaWeb学习中,老师一定会告诉大家:model就是JavaBean实现的,view就是JSP实现的,controller是Servlet实现的。于是乎你的期末大作业就会交上去一个这样的作品。(图为作品目录)

5-1 MVC模型.png

最快乐的时间可能就是写JavaBean的时间,然后Servlet中各种业务,而且基本上就是实现登入登出和增删改查功能就会让Servlet看着很庞大。

3.上述这种MVC模式的流程

如图所示:

5-1 MVC工作流程.png

这种流程的MVC模式会让Servlet的变得非常的庞大,而且能实现的业务不多,非常不利于维护。Servlet 会承担很多功能的实现,比如处理请求响应,视图跳转,处理 JDBC,业务代码和逻辑代码等等。

三层架构

2. 三层架构

三层架构是指将程序分为表示层、业务逻辑层、数据访问层。

5-2 三层架构.png

这三个分别对应的是Servlet层、Service层和Dao层。

三层架构主要是采用的面向接口编程,层与层之间使用接口访问,并通过对象模型的实体类(Model)作为数据传递的载体。

所以标准的三层架构的代码目录是:

5-3 三层目录.png

它们的访问方式是:

5-4 访问方式.png

1.在古老的MVC模式加一个环节

想要解决上述问题,最主要的方式就是将Servlet变轻,现在我们就给Servlet瘦身,将它的逻辑业务和CRUD剥离出来,让Servlet只负责接收和响应,接收到的数据交给servicedao来完成。

service来完成Servlet的逻辑业务

dao来完成数据库连接、查询和更新操作。

2.新的MVC模式:MVC三层架构

依然是Model、View、Controller三层,但是将Controller的一些业务放到Modle中:

  1. Model:
    1. JavaBean:构造实体
    2. Service:实现逻辑业务
    3. Dao:实现数据库的相关操作
  2. View:
    1. 展示数据
    2. 给用户提供操作
  3. Controller:
    1. Servlet:负责请求和响应

4.MVC模式和三层架构的关系

关系图如下:

5-5 MVC和三层模式.png

小结

三层架构是一个非常重要的架构模式,在学完JavaWeb继续去学习框架的时候,基本上用到的都是三层架构模型,所以一定要理解三层架构的思想。