文章目录

  • 什么是MVC模式
  • MVC架构程序的工作流程
  • 什么是三层架构
    • 什么是系统架构
    • 什么是三层架构
    • 各层之间的引用关系
  • MVC 与三层架构的对应关系
  • 总结

什么是MVC模式

MVC,即 Model 模型、View 视图,及 Controller 控制器

注意:这里只说了 MVC 是一种模式,而没有说是一种设计模式,设计模式中是不包括 MVC 的,但有些地方却是直接叫 MVC 设计模式,这点要明确

  • View:视图,用于为用户提供使用界面以及与用户直接进行交互

    视图层 jsp 等文件担任,其中用到的技术包括但不限于html、css等

    在没有 jsp 之前,使用的是 servlet 做视图,很麻烦,而且 servlet 既要做页面显示,还要处理业务逻辑,耦合度很高,所以后来就出现了 jsp,用于做页面展示,其实 jsp 就是一个 servlet

    既然 jsp 就是一个 servlet,那么它也是既能做页面展示,又能做业务逻辑处理的,这也正好和我们可以在 jsp 页面中嵌入 Java 代码是一致的

  • Model:模型,用于承载数据,并对用户提交的请求进行处理。其分为两类,一类称为数据承载 Bean(业务模型),一类称为业务处理 Bean(数据模型)(有些也将 Bean 成为 JavaBean,其实都是一样的,理解即可)

    所谓数据承载 Bean 就是指实体类,专门用户承载业务数据的,如 Student、User 等,往往对应数据库中的一张表。而业务处理 Bean 则是指 Service 或 Dao 对象,专用于处理用户请求的,如 LoginDao.java 封装了用户的登录逻辑

  • Controller:控制器,用于接收用户请求,并将请求跳转(转发或重定向)到对应的 Model 进行处理;Model 处理完毕后,将结果返回给控制器,结果经过渲染后,再由控制器将结果返回给视图的请求处

由以上分析可知,View/视图 这个角色是由 jsp 扮演的,Model/模型 这个角色是由 Entity 和 Service 扮演的,Controller/控制器 这个角色是由 servlet 扮演的

MVC架构程序的工作流程

  • 用户通过 View 页面向服务端提出请求,可以是表单请求、超链接请求、AJAX请求等

  • 服务端 Controller 控制器接收到请求后对请求进行解析,找到相应的 Model 对用户请求进行处理

  • Model 处理后,将处理结果再交给 Controller

  • Controller 在接到处理结果后,根据处理结果找到要作为向客户端发回的响应 View 页面。页面经渲染(数据填充)后,再发送给客户端。

什么是三层架构

什么是系统架构

所谓系统架构是指,整合应用系统程序大的结构。经常提到的系统结构有两种:三层架构与MVC。这两种结构既有区别,又有联系。但这两种结构的使用,均是为了降低系统模块间的耦合度

什么是三层架构

三层架构是指:表现层View、业务逻辑层 Service 与数据访问层 DAO,其实还要加上一个实体类库 Model,即 Java 中的实体类。一般来说,实体类库需要被其它三层引用

  • 表现层:从表象上看,就是用户直接看到的界面

  • 业务逻辑层:好比是一个桥梁,将表现层与数据访问层联系起来,主要负责处理业务逻辑相关的问题,比如在调用访问数据库的代码之前,先对数据进行处理与判断

  • 数据访问层:直接操作数据库的代码,即根据业务需求,构造 SQL 语句,对数据库进行增删改查等操作

这里需要明确的是,数据最终并不是存在数据库的,而是存在硬盘等存储介质上,只是存在数据库中方便我们对数据进行增删改查以及一些安全性等方面的考虑。从理论上来说,以 txt 或者 excel 等其它任何格式存储都是可以的

微服务也是架构的一种
单体应用使用三层架构一般就可以了

为了更好的降低各层间的耦合度,在三层架构程序设计中,采用面向抽象/接口编程。即上层对下层的调用,是通过接口实现的。而下层对上层的真正服务提供者,是下层接口的实现类。服务标准(接口)是相同的,服务提供者(实现类)可以更换。这就实现了层间解耦合

各层之间的引用关系

MVC 与三层架构的对应关系

总结

由此可见,MVC 模式主要是应用在三层架构中的表现层(View)的

MVC 中的 V 也是指的 View

所以,三层架构 和 MVC 的联系与区别就是:在单体应用的开发中,首先是将项目分为表现层、业务逻辑层、数据访问层这三层,然后在表现层这一层还要运用一个模式,即 MVC 模式,用于将业务与展示分离

三层架构指的是一种软件设计架构/系统架构,就像微服务这种架构一样,而 MVC 是应用在三层架构中的其中一层 —— View 层的

这篇文章的视角比较独特,可以参考:https://www.cnblogs.com/kubixuesheng/p/10340313.html

MVC模式与三层架构相关推荐

  1. MVC模式与三层架构的区别

    MVC模式与三层架构的区别 原文地址:http://www.cnblogs.com/yourshj/p/5197310.html 之前总是混淆MVC表现模式和三层架构模式,为此记录下. 三层架构和MV ...

  2. Java MVC模式和三层架构

    MVC 是一种分层开发的模式: M:Model,业务模型,处理业务 V:View,视图,界面展示 C:Controller,控制器,处理请求,调用模型和视图 三层架构分别是 表现层 . 业务逻辑层 . ...

  3. MVC模式和三层架构

    MVC模式: MVC是一种分层开发的模型,其中: M:Model,业务模型,处理业务 V:View,视图,界面展示 C:Controller,控制器,处理请求,调用模型和视图 前端view后端cons ...

  4. MVC模式 和 三层架构——应用案例

    目录 1.环境准备 2.创建工程 3.创建包 4.创建表 5.创建实体类 6.准备mybatis环境 7.查询所有 7.1编写BrandMapper 7.2编写工具类 7.3编写BrandServic ...

  5. MyBatis学习:简单认识一下MVC架构模式和三层架构

    1.本篇博客的背景和目的 目前我本人正在学习MyBatis框架,在原先了解并且懵懵懂懂使用的基础上,开始系统正式的学习.本篇博客阐述一下MVC架构模式和三层架构,以及明晰一下我们通常在Web项目中的编 ...

  6. 10个常见软件架构模式和三层架构模式

    10个常见软件架构模式: 1. 分层模式: 信息系统常见的4层划分:Presentation layer表示层(也就是UI层).Application layer应用层(也就是服务层).Busines ...

  7. 简单理解MVC模式和三层构架

    引述 使用开发工具写JavaWeb项目时会发现 一个中型或者大型项目 随着代码的增加增多 会发现 代码既可以写在src目录下 src下可以创建很多包 所以问题来了 一个新的类到底该往那个目录下面写呢 ...

  8. mvc设计模式与三层架构

    mvc与三层架构  1.什么是mvc设计模式 写Java Web项⽬时会发现,一个中型或者大型项目随着代码的增多,会发现:代码既可以写在src目录下,也可以写在WebContent目录下. src下可 ...

  9. angular是MVC模式还是MVVM架构模式

    下面仅是个人对angular是MVC或者MVVM的理解. 首先在讨论angular是哪种模式之前,我们得先了解什么是MVVM和MVC. MVVM vs MVC 总体介绍 首先,两者都是一种架构思想.都 ...

最新文章

  1. szu 寒训第二天 树状数组 二维树状数组详解,以及树状数组扩展应用【求逆序对,以及动态第k小数】
  2. urlencode urldecode
  3. gsoap写一个c++ webservice
  4. Ubuntu16.04 配置SSH无密码登录
  5. hdu 1166 敌兵布阵 树状数组
  6. HBase建表高级属性,hbase应用案例看行键设计,HBase和mapreduce结合,从Hbase中读取数据、分析,写入hdfs,从hdfs中读取数据写入Hbase,协处理器和二级索引
  7. PhysicsJoint
  8. (一)初识java ---我的第一个java程序
  9. chrome麦克风权限_如何在Chrome扩展程序中处理麦克风输入权限和语音识别
  10. java 分布式同步_Java Web分布式集群搭建(三)——Session同步
  11. 关于监听套接字的形象解释
  12. USBoot /WinHex恢复故障U盘的数据文件
  13. 如何在 Windows 10 上完全禁用 UAC
  14. 摘抄“GPU Programming And Cg Language Primer 1rd Edition” 中文名“GPU编程与CG语言之阳春白雪下里巴人”
  15. 贝叶斯神经网络 BNN
  16. Agile Scrum WaterFall通俗易懂的全过程整理
  17. Mysql联表查询(学生表、教师表、成绩表、课程表)
  18. 阿维塔以情感智能陪伴用户“悦己而行”,为用户创造悦己生活
  19. 相机参数估计值如何计算?
  20. 推荐大家......必看的几部超级鬼片

热门文章

  1. ai物联网工程师_如何将Api.ai助手连接到物联网
  2. 零zerro世界符号大全pdf_热门抖音文案大全!点赞量超高的句子,总有一句打动你!...
  3. itext7生成pdf教程
  4. 面经:众安保险前端实习,一面(27min)
  5. 浅谈优秀程序员电脑环境配置
  6. Problem E: 不定方程求解
  7. 【Java开发】命令解析框架CommandX
  8. 王光耀20176474
  9. webp如何使用,webp是什么?webp如何生成,
  10. 锚链常见的几种连接方式