首页 > 其他分享 >三层架构与MVC

三层架构与MVC

时间:2022-08-23 21:24:40浏览次数:61  
标签:架构 请求 用户 MVC 三层 数据

 

/*
*作者:呆萌老师
*☑csdn认证讲师
*☑51cto高级讲师
*☑腾讯课堂认证讲师
*☑网易云课堂认证讲师
*☑华为开发者学堂认证讲师
*☑爱奇艺千人名师计划成员
*在这里给大家分享技术、知识和生活
*各种干货,记得关注哦!
*vx:it_daimeng
*/

  

 

1.为什么要有架构?

这是为了满足低耦合,高内聚,实现代码的健壮性和可扩展性。比如为了更好的降低各层间的耦合度,在三层架构程序设计中,采用面向抽象编程。即上层对下层的调用,是通过接口实现的。而下层对上层的真正服务提供者,是下层接口的实现类。服务标准(接口)是相同的,服务提供者(实现类)可以更换。

2.三层架构是什么?

三层架构由用户界面层/表示层(User Interface),业务逻辑层(Business Logic Layer)和数据访问层(Data Acess Layer)构成。

其中每一层的作用为:

用户界面层:负责与用户进行交互。

业务逻辑层:主要是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理。

数据访问层:主要是对非原始数据(数据库或者文本文件等存放数据的形式)的操作层,也就是说是对数据库,而不是对数据的操作,具体为业务逻辑层或用户界面层提供数据服务。

  • 举个例子:

访问一个网站。用户需要经历的过程有:在浏览器输入 url,然后浏览器向 Server 发起一个 http 请求,Server 拿到这个 http 请求之后会根据相关的条件到数据库查询相关数据,然后把数据以特定的格式(网站是 html 格式)返回给浏览器,浏览器再根据特定数据渲染出相应页面。那么:

  1. 对用户来说,浏览器就是用户界面层,它主要是与用户交互的页面,根据用户的输入与事件,处理并显示返回的特定数据。
  2. 连接表示层与数据访问层的就是业务逻辑层,这包括后端程序中模型设计、验证、业务规则、各种计算等。
  3. Server 端必须要一个强大的数据库来存储所有用户交互产生的数据,而对这些数据的处理,包括增、删、改、查就属于数据访问层。
  • 三层架构图示:


3.MVC架构模式是什么?

MVC架构模式是由Model模型(JavaBean),View视图(Jsp) 和 Controller控制器(Servlet)构成

其中每一部分的作用为:

Model:承载数据,并对用户提交请求进行计算的模块。其分为两类,一类称为数据承载Bean,一类称为业务处理Bean。所谓数据承载Bean是指实体类,专门承载业务数据的,如Student、User等。而业务处理Bean则是指Service或Dao对象,专门用于处理用户提交请求的。

View:为用户提供使用界面,与用户直接进行交互

Controller:用于将用户请求转发给相应的Model进行处理,并将处理Model的计算结果向用户提供相应响应。

MVC图示:


4.MVC框架和三层架构的关系?

三层架构是一种软件领域最普遍的分层式架构,而 MVC 是在三层架构的基础上设计的一种框架型架构,三层架构是一种宏观的概念,而 MVC 就是一种比较具体的三层架构的框架实现,我们在 MVC 的基础上把不同类别的代码文件进行分类就可以了

两者关系图示:


 

总的来说:MVC与三层架构并不是一一对应的,MVC只是三层架构基础上设计的具体框架

5.MVC框架的工作流程?

  1. 用户通过View页面向服务端提出请求,可以是表单请求、超链接请求、AJAX请求等。
  2. 服务端Controller控制器接收到请求后对请求进行解析,找到相应 的Model对用户请求进行处理。
  3. Model处理后,将处理结果再交给Controller
  4. Controller在接到处理结果后,根据处理结果找到要作为向客户端发回的响应View页面。页面经渲染(数据填充)后,再发送给客户端

 

标签:架构,请求,用户,MVC,三层,数据
From: https://www.cnblogs.com/daimenglaoshi/p/16617854.html

相关文章

  • SpringMVC学习笔记
    SpringMVC1、SpringMVC简介1.1、什么是MVCMVC是一种软件架构的思想,将软件按照模型、视图、控制器来划分。M:Model,模型层,指工程中的JavaBean,作用是处理数据。JavaBean分......
  • 代码审计 企业级Web代码安全架构 可惜php 没那么熟了,正好从逆向角度复习,开始看代
     使用phpstudy 这么多漏洞。。。       常见的代码审计思路: 就是寻找功能边界吧,做好边界,特别是敏感边界(内外交互)的审查00000000000000000不相信......
  • 代码审计 企业级Web代码安全架构 可惜php 没那么熟了,正好从逆向角度复习 php虚
     忘了哪本书里说,研究信息系统的安全问题,要对系统获得比开发人员更深的理解,深以为然 php虚拟机  <深入理解PHP内核>这书当年就没咋看懂。。。https://www.shouce......
  • MySQL事务MVCC、undolog和redolog
    MySql的MVCC多版本控制undolog:回滚日志(保证一致性)只有在ReadCommited和RepeatableRead隔离级别有用redolog:重写日志(保证持久性)示例讲解 ReadCommited隔离级别(4)se......
  • ASP.NET Core – MVC
    前言在 ASP.NETCore–MVCvsRazorPage 里有提到MVC.它算是WebAPI的抽象.但是通常MVC指的是比较传统的Website,WebAPI则是前后端分离的方案.RazorPage......
  • 服务器时间同步架构与实现chrony
    实验背景模拟企业局域服务器时间同步,保障各服务器系统准确性和时间一致性。时间服务器系统搭建实验架构图环境设备设备IP规划国内互联网NTP服务器ntp.aliyun.co......
  • 节选 软件建模与文档:架构师怎样绘制系统架构蓝图?
    软件建模所谓软件建模,就是为要开发的软件建造模型。模型是对客观存在的抽象,例如著名的物理学公式E=mc2,就是质量能量转换的物理规律的数学模型。除了物理学公式以外,还有一......
  • haddoob分布式文件系统架构
    一、apacheApache基金会是专门为支持开源软件项目而办的一个非盈利性组织二、分布式文件系统1、FSFileSystem文件系统时极域硬盘之上的文件管理的工具我们用户......
  • 架构图
    最近在画项目的技术架构图,找到了一些不错的模板,分享给大家~画图工具:ProcessOn。本文内容如下:   业务架构图定义:描述系统对用户提供了什么业务功能,画的时候偏向......
  • 系统架构师:软件工程
    1.GB8566-88(《软件工程国家标准——计算机软件开发规范》)中将软件生命周期划分为8个阶段:1. 可行性研究与计划确定开发此软件的必要性确定软件的目标、范围、风......