MVC与三层架构之间的关系
一、 MVC
MVC是软件工程中的一种软件架构模式,分为Model(模型)、View(视图)、Controller(控制器)
1. Model
model是应用对象,程序员编写程序应有的功能(实现算法等等)、数据库专家进行数据管理和数据库设计(可以实现具体的功能)
2. View
view负责显示数据和提交数据
3. Controller
Controller定义用户界面对用户输入的响应方式,主要是用作辅助捕获请求并控制请求转发
4. 为什么要用MVC
- 可以为一个模型提供多个不同的视图表现形式;
- 在为一个模型创建新的视图时无需重写模型
- 使用MVC将model、view、controller三者进行分离可以降低层与层之间的依赖,做到高内聚低耦合
- 有利于标准化
- 在开发时只需要关注整一个结构中的某一部分
二、三层架构
三层架构通常指将整个业务应用分为三个部分:展示层(UI)、数据访问层(DAL)、业务逻辑层(BLL)
1. 展示层
主要是指与用户交互的界面。用于接收用户输入的数据和显示处理后用户需要的数据。
2. 数据访问层
也叫持久层。访问数据库,主要实现对数据的增删查改。将存储在数据库中的数据提交给业务层,同时将业务层处理的数据保存到数据库。
3. 业务逻辑层
在展示层与数据访问层之间,主要实现业务逻辑,具体包含:验证、计算、业务规则等。
4. 实体层
不是说三层架构吗?为什么会多出一层?其实实体层不属于三层中任何一层,但它是必不可少的
它实现了面向对象思想中的“封装”
连接三层,在三层之间传输数据
5. 三层之间的依赖关系
三、MVC与三层架构之间的关系
MVC不是三层架构
三层架构是一个分层式的软件体系架构设计,它可适用于任何一个项目。
MVC是一个设计模式,它是根据项目的具体需求来决定是否适用于该项目。
但它们都有同一个作用就是解耦合,只是划分的界限不一样罢了
三层架构中的UI对应MVC中的view(jsp),都是用于显示以及获取界面的数据;三层架构中的BLL层和DAL层对应MVC中的Model(javabean)层都是用于处理上层传递来的数据以及从数据库获取的数据的;MVC中的Controller(Servlet)最多算是三层架构中的UI的一部分,也就我们常说的是Servlet。
MVC与三层架构之间的关系相关推荐
- 关于MVC与三层架构、个人总结网上杂七杂八得出的最终成果、asp.net (core) MVC、JavaWeb的MVC
阅读本文必须明白的事情 首先需要明白的是不同语言实现的MVC与三层架构对应的层是不一样的!!! 拿.net来说,.net实现MVC与其他语言的MVC具体实现是不同的,asp.net MVC与 MVC ...
- MVC与三层架构模型笔记
文章目录 1. MVC 1.1 什么是MVC 1.2 为什么需要MVC 2. 项目的三层架构 2.1 表现层 User Interface layer 2.2 业务逻辑层 Business Logic ...
- 浅谈 MVC与三层架构
引言: 使用Eclipse开发工具写Java Web项目时会发现,一个中型或者大型项目 随着代码的增多,会发现:代码既可以写在src目录下,也可以写在WebContent目录下.src下可以建很多包 ...
- MVC与三层架构理解
文章目录 1. JSP的发展 2. MVC思想 优缺点 3. 三层架构 为什么使用三层 三层优缺点 4. MVC与三层架构的区别 1. JSP的发展 早期只有Servlet,只能使用response输 ...
- MVC与三层架构区别
我们平时总是将三层架构与MVC混为一谈,殊不知它俩并不是一个概念.下面我来为大家揭晓我所知道的一些真相. 首先,它俩根本不是一个概念. 三层架构是一个分层式的软件体系架构设计,它可适用于任何一个项目. ...
- MVC与三层架构的联系及三层架构实现学生注册功能
MVC与三层架构的联系及三层架构实现学生注册功能 三层架构的逻辑关系: MVC和三层架构的联系: 三层架构实现学生注册功能的逻辑: 学生注册页面: 输入学生信息: 完成学生注册: 代码实现: add. ...
- 关于MVC与三层架构
我认为MVC设计模式,关键在于构建Model,Model就是MVC模式的灵魂,他包含了三层架构里面的 "实体规范层"."行为规则层"."数据访问层&q ...
- JavaWeb——MVC与三层架构
文章目录 JavaWeb--MVC与三层架构 1.三层架构 2.MVC 3.MVC与三层架构的对应联系 4.MVC与三层架构的区别 JavaWeb--MVC与三层架构 1.三层架构 三层架构 (3-t ...
- 什么是 MVC 和 三层架构?
什么是 MVC 和 三层架构? MVC 全名是 Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻 ...
最新文章
- Javascript创建数组的方式你了解了吗
- 权威预测:2018年这十大数字化转型趋势要火!
- 如何在python中制作超级玛丽_教你利用Python写一款超级玛丽,零基础也能学会,超级装逼...
- 边工作边考研的计算机经验,边工作边考研的经验
- 4.1 使用STM32控制MC20拨打电话
- 牛客多校三 B Black and white
- 在 SAP BTP Kyma Runtime 上使用 Redis 读取和存储数据
- 《Oracle高性能自动化运维》一一3.3 Redo产生场景
- 【牛客 - 318G】LLLYYY的数字思维 与【牛客 - 289J】这是一个沙雕题II(贪心构造)
- linux 网络路径中网络协议栈有几种,linux网络路径中网络协议栈有几种
- (63)Verilog HDL模块例化VHDL模块
- js修改IOS微信title
- 菜鸟的Python学习之路(流水账)
- 图片url地址的生成获取方法
- register int 与 int 的区别
- Python3.6支付宝账单爬虫
- HDU4565 So Easy! (矩阵)
- 王者荣耀又开始“神仙”操作,全新的神仙英雄在体验服上线!
- 【转】Android屏幕适配全攻略(最权威的官方适配指导)
- Flask框架的搭建
热门文章
- oracle enq ta,【案例】Oracle等待事件event enq: KO - fast object checkpoint解决办法
- LabVIEW控制Arduino采集多路DS18B20温度数值(进阶篇—3)
- Python 实验六 文件访问
- 记录一次linux服务器被挖矿的解决
- 政务部门数据交换共享方式对比
- 学计算机的什么是镜像,系统镜像文件是什么 什么叫系统镜像文件
- 0816大疆笔试B卷
- 从公共汽车上报站名的学问说起 -- 谈数字在位置信息表示中的应用
- Scrapy:[scrapy.core.engine] DEBUG: Crawled (200)解决尝试
- 详细简单的php图片轮播,最简单的JavaScript图片轮播代码(两种方法)_javascript技巧...