什么是MVC(三层架构)

MVC和三层架构之间的关系 作为一名Android研发,最近再研究一些服务端的开发,遇到一个问题“Mvc和三层架构之间的关系是啥”。参考了一些资料,做一些记录。 现在服务端JavaWeb开发比较流行的是使用脚手架SpringBoot框架来进行开发,SpringBoot能很方便的实现SSM框架的服务端架构。下面拿SSM框架和三层架构进行比较分析。 一、三层架构 三层架构是指:视图层View、服务层Service、持久层Dao,分别完成不同的功能。 View层:用于接收用户提交请求的代码。 Service层:系统的业务逻辑。 Dao层:直 阅读详情
MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。
视图
视图是用户看到并与之交互的界面。对老式的Web应用程序来说,视图就是由HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演 着重要的角色,但一些新的技术已层出不穷,它们包括Macromedia Flash和象XHTML,XML/XSL,WML等一些标识语言和Web  services.
如何处理应用程序的界面变得越来越有挑战性。MVC一个大的好处是它能为你的应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。
模型
模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。例如它可能用象EJBs和ColdFusion Components这样 的构件对象来处理数据库。被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可 以被多个视图重用,所以减少了代码的重复性。
控制器
控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后用确定用哪个视图来显示模型处理返回的数据。
现在我们总结MVC的处理过程,首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理,然后模型用业务逻辑来处理用户的请求并返回数据,最后控制器用相应的视图格式化模型返回的数据,并通过表示层呈现给用户。
为什么要使用 MVC
大部分Web应用程序都是用像ASP,PHP,或者CFML这样的过程化语言来创建的。它们将像数据库查询语句这样的数据层代码和像HTML这 样的表示层代码混在一起。经验比较丰富的开发者会将数据从表示层分离开来,但这通常不是很容易做到的,它需要精心的计划和不断的尝试。MVC从根本上强制 性的将它们分开。尽管构造MVC应用程序需要一些额外的工作,但是它给我们带来的好处是无庸质疑的。
首先,最重要的一点是多个视图能共享一个模型,正如我所提及的,现在需要用越来越多的方式来访问你的应用程序。对此,其中一个解决之道是使用 MVC,无论你的用户想要Flash界面或是 WAP 界面;用一个模型就能处理它们。由于你已经将数据和业务规则从表示层分开,所以你可以最大化的重用你的代码了。
由于模型返回的数据没有进行格式化,所以同样的构件能被不同界面使用。例如,很多数据可能用HTML来表示,但是它们也有可能要用 Macromedia Flash和WAP来表示。模型也有状态管理和数据持久性处理的功能,例如,基于会话的购物车和电子商务过程也能被Flash网站或者无线联网的应用程序 所重用。
因为模型是自包含的,并且与控制器和视图相分离,所以很容易改变你的应用程序的数据层和业务规则。如果你想把你的数据库从MySQL移植到 Oracle,或者改变你的基于RDBMS数据源到LDAP,只需改变你的模型即可。一旦你正确的实现了模型,不管你的数据来自数据库或是LDAP服务 器,视图将会正确的显示它们。由于运用MVC的应用程序的三个部件是相互对立,改变其中一个不会影响其它两个,所以依据这种设计思想你能构造良好的松偶合 的构件。
对我来说,控制器的也提供了一个好处,就是可以使用控制器来联接不同的模型和视图去完成用户的需求,这样控制器可以为构造应用程序提供强有力的手段。给定一些可重用的模型和视图,控制器可以根据用户的需求选择模型进行处理,然后选择视图将处理结果显示给用户。
MVC的缺点
MVC的缺点是由于它没有明确的定义,所以完全理解MVC并不是很容易。使用MVC需要精心的计划,由于它的内部原理比较复杂,所以需要花费一些时间去思考。
你将不得不花费相当可观的时间去考虑如何将MVC运用到你的应用程序,同时由于模型和视图要严格的分离,这样也给调试应用程序到来了一定的困难。每个构件在使用之前都需要经过彻底的测试。一旦你的构件经过了测试,你就可以毫无顾忌的重用它们了。
根据我个人经验,由于我们将一个应用程序分成了三个部件,所以使用MVC同时也意味着你将要管理比以前更多的文件,这一点是显而易见的。这样好像我们的工作量增加了,但是请记住这比起它所能带给我们的好处是不值一提。
MVC并不适合小型甚至中等规模的应用程序,花费大量时间将MVC应用到规模并不是很大的应用程序通常会得不偿失。
MVC是一条创建软件的好途径
MVC设计模式是一个很好创建软件的途径,它所提倡的一些原则,像内容和显示互相分离可能比较好理解。但是如果你要隔离模型、视图和控制器的构件,你可能 需要重新思考你的应用程序,尤其是应用程序的构架方面。如果你肯接受MVC,并且有能力应付它所带来的额外的工作和复杂性,MVC将会使你的软件在健壮 性,代码重用和结构方面上一个新的台阶。
Java开发Web Application有几种符合MVC设计模式的开发方式。
1:Jsp+Servlet+JavaBean(EJB)
2:Jsp+JavaBean(Controller)+JavaBean(EJB)(Model)
3:TDK(Turbine,Velocity...)
4:Xsp
5:Jsp+Struts+JavaBean(EJB)
附:
三层架构即“表现层”,“业务层”,“持久化层”。表现层实现的代表作品是Struts框架,业务层实现的代表作品是Spring,持久层实现的代表作品是Hibernate。
举个例子。
持久层从持久库中取出-10。
业务层按照一定的逻辑(这里我们举例取温度的逻辑)翻译成-10摄氏度。
表示层显现给用户“哎呀,今天好冷!”。
层就相当于一个黑盒子,我们不用知道它内部怎么实现,只需要知道如何去调用它就行了。每层只与上下相邻的两层打交道。当一层内部由于技术变迁发生变化时,只要接口不变,其他层不用做任何改变。分层之后灵活性提高,也便于团队分工开发。
 
MVC框架与三层架构 起初,在初步碰到MVC时,师哥说,只要学过三层的人,整体上看MVC框架就容易多了,于是乎:三层?MVC? 下面就让小编为您解开这面纱。   [三层架构]: 通常意义上的三层架构就是将整个业务逻辑应用划分为:表现层(UI),业务逻辑处理层(BLL),数据访问层(DAL).(如果程序需要,还可以分多层)三层是为了解决整个应用程序中各个业务操作过程中代码封装问题,为了使程序员更加专注的处理某层的 阅读详情

相关推荐

JavaWeb快速入门 MVC架构&三层架构

一、MVC的发展 JavaWEB发展史(4个阶段): https://blog.youkuaiyun.com/yuangan1529/article/details/118441239 ![5](5.png) 1.JSP的发展 早期只有Servlet,只能使用response输出标签数据,非常麻烦后来。JSP的出现,简化了 Servlet的开发。但是过度的使用JSP,在JSP中写大量的java代码,又前端的页面,...

KYA_ZXY的博客 2004

2022-03-30 设计k8s的redis-operator中的controller的设计模式

目录 摘要: 设计思想: 一. 观察者模式 二. 状态器模式 例如: 摘要: operator中的controller是一个非常好的设计模式的淬炼对象, 本文对其中有意思的设计做一些记录. 设计思想: 一. 观察者模式 主要表现在informs与k8s-apis的交互上 第一步先使用list拿到所有的资源类型 第二步使用watch,向k8s-apis的etcd注册监听事件 第三步, 当k8s的etcd的资源有所变化, 则利用etcd的watch机制对注册者进行广播 需要

悟世之路 3121

关于设计模式MVC(Model View Controller)模型-视图-控制器

 MVC本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器。使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。比如一批统计数据你可以分别用柱状图、饼图来表示。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。   模型-视图-控制器(MVC)是Xerox PARC在八十年代为编程语言Smalltalk-80发明的一种软件设计模式,至今已被广泛使用。最近几年被推荐为Sun公司J2EE平台的设计模式,并且受到越来越多的使用 ColdFusion 和 PHP 的开发者的欢迎。模型-视图-控制器模式是一个有用的工具箱,它有很多好处,但也有一些缺点。 。。。。。。。。。。。。。。。。。。。。。

【无标题】

1、JSP Model2模型就是MVC(Model-View-Controller,模型-视图-控制器)设计模式,其中实现视图角色的是(A)A、A、JSPB、B、HTML2、JSP Model2模型就是MVC设计模式,其中实现控制器角色的是(C)A、A、JSPB、B、JS3、下列选项中,不是MVC设计模式的优点的是( D)。A、A、结构清晰。B、B、易于维护C、C、有利于软件工程化管理D、D、占用资源少4、关于JavaBean,下列叙述中错误的是( C)

weixin_57242411的博客 428

DLL导出函数名隐藏实战:三种方法保护代码安全

在Windows软件开发中,动态链接库(DLL)的导出函数名是模块间通信的关键标识,也是逆向工程的重要突破口。理解PE文件格式中的导出表结构是掌握DLL工作原理的基础,它记录了函数地址、名称和序号的映射关系。通过隐藏或混淆这些导出名称,可以有效增加代码分析的难度,提升软件的知识产权保护和安全性。这一技术在软件保护、游戏反作弊和安全组件中具有重要价值。本文聚焦DLL导出函数名隐藏,结合Dependencies工具分析,详细解析仅序号导出、导出转发器和运行时动态修改三种实用方案,为开发者提供从原理到实践的完整指

weixin_29315091的博客 307

在Proteus中用80C51模拟4线SPI点亮OLED屏幕

在Proteus里用80C51模拟4线SPI控制OLED屏幕使其显示图案(汇编实现)。

Connor3093的博客 5003

java课程设计实验报告_java课程设计实验报告样例

分数_______ 嘉应学院计算机学院实验报告 课程名称:面向对象程序设计课程设计(Java)实验名称:”动物换位”程序设计 指导教师:肖振球 实验地点:_居家学习_实验时间:2020.03.17 提交时间:2020.03.17 班 级:_计算机1807_姓 名:_方强_学 号:181110325_ 一、 实验目的和要求 掌握动物换位游戏的基本操作。二、 实验...

weixin_30273263的博客 701

载波同步技术(一):BPSK的Costas Loop 载波同步

Author:McCrocodile 2010/11/04          载波的提取在相干解调中往往比较重要,根据信号中是否包含载频分量,载波同步一般也可以分为两种方法。包含载频分量的可以采用窄带滤波或者基本的锁相环环路来实现,不包含的则比较麻烦需要采用特殊的环路实现载波的同步。这里介绍的BPSK的载波恢复就属于后面一种。 对于不包含载频分量的信号载波同步一般有:同相-正交环(就是常说的Costas环)、判决反馈环(几乎可以适用所有调制方式)、同相-正交环衍生环(QPSK松尾环、N相同相-正交环)。

McCrocodile Blog 1万+

iOS开发之理解iOS中的MVC设计模式

模型-视图-控制器(Model-View-Controller,MVC)是Xerox PARC在20世纪80年代为编程语言Smalltalk-80发明的一种软件设计模式,至今已广泛应用于用户交互应用程序中。在iOS开发中MVC的机制被使用的淋漓尽致,充分理解iOS的MVC模式,有助于我们程序的组织合理性。 模型对象 模型对象封装了应用程序的数据,并定义操控和处理该数据的逻辑和运算。

加勒比海兔的专栏 972

Cadence IC618/Spectre231安装避坑指南:详解环境变量配置与License管理那些事儿

本文深入解析Cadence IC618/Spectre231安装过程中的环境变量配置与License管理难题,提供从变量冲突解决到高效License管理的实用方案。针对常见的64位标识冲突、路径污染及License服务器连接问题,给出具体诊断步骤和优化建议,帮助用户构建稳定可靠的EDA环境。

weixin_33737134的博客 616

基于FLUENT的圆柱绕流数值模拟与流场优化策略

本文详细介绍了基于FLUENT的圆柱绕流数值模拟方法与流场优化策略。从基础概念、建模技巧到湍流模型选择,全面解析了圆柱绕流模拟的关键技术,并提供了实用的网格划分和参数设置建议。通过具体案例展示了流动控制方法和优化流程,帮助工程师有效降低阻力系数,提升流场性能。

f6g7h8i9j的博客 705

***第11章 JSP开发模型

***第11章 JSP开发模型 习题 一、填空题 1.为了更方便地使用JSP技术,Sun公司为JSP技术提供了两种开发模型:【 JSP Model1 】和【 JSP Model2 】。 2.JSP Model1采用【 JSP+JavaBean 】的技术,将页面显示和业务逻辑分开。 3.JSP Model2模型就是【 MVC 】设计模式,其中控制器的角色是由Servlet实现,视图的角色是由JSP页面实现,模型的角色是由JavaBean实现。 4.【 模型(Model)

桃桃的桃子的博客 4413

BEVFormer vs BEVFusion:5个关键差异点帮你选对环视感知方案

本文深入对比了自动驾驶领域两大主流环视感知方案BEVFormer与BEVFusion。BEVFormer作为纯视觉BEV感知的标杆,通过注意力机制隐式学习深度,成本较低;而BEVFusion作为多模态融合典范,融合激光雷达与摄像头数据,在性能、小目标检测及极端环境鲁棒性上优势显著。文章从计算效率、部署成本、数据依赖性等五个核心维度提供选型指南,帮助技术决策者根据自身算力预算与传感器配置做出明智选择。

weixin_29306011的博客 124

MVC与三层架构理解

1. JSP的发展 2. MVC思想 优缺点 3. 三层架构 为什么使用三层 三层优缺点 4. MVC与三层架构的区别

iqqcode 7万+

智能优化算法-北方苍鹰优化算法(NGO)(附源码)

北方苍鹰优化算法 (Northern Goshawk Optimizer, NGO) 是一种基于群体智能的元启发式优化算法,它模拟了北方苍鹰(Northern Goshawk)的捕食行为、领地行为以及社交互动,用于解决复杂的优化问题。总之,NGO作为一种新颖的优化算法,在处理复杂优化问题方面展现出了潜力。随着进一步的研究和应用,NGO有望成为解决实际问题的有效工具。

w971656545的博客 1361

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

三层架构和MVC的区别

首先分别了解三层架构和MVC 很简单,百度搜索(不喜勿喷,我给自己看的) 一、三层架构 三层架构(3-tier architecture) 通常意义上的三层架构就是将整个业务应用划分为:界面层(User Interface layer)、业务逻辑层(Business Logic Layer)、数据访问层(Data access layer)。区分层次的目的即为了“高内聚低耦合”的思想。在软件...

elice_的博客 4万+

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

MVC 三层架构

本文介绍了 MVC 三层架构的相关内容。。。

Regino的博客 8785

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

【JavaWeb】之MVC三层架构

JavaWeb基础MVC三层架构详细介绍~

小新要变强的博客 3289

JAVA中的MVC三层架构

MVC(Model-View-Controller)是一种软件设计模式,用于将应用程序分为主要的部分:模型(Model)、视图(View)和控制器(Controller)。这种架构有助于提高代码的可维护性和可扩展性。Spring框架通过@Controller@Service和注解清晰地划分了MVC三层架构的各个层次,使得开发人员能够更高效地构建和维护复杂的Web应用。POJO类:用于表示业务实体,通常包含属性和相关的getter/setter方法。DAO类:用于封装对数据库的操作,提供数据访问的接口。

楠寻寻的博客 3040

MVC三层架构

MVC简介 MVC开始是存在于桌面程序中的,M是指业务模型,V是指用户界面,C则是控制器,使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。比如一批统计数据可以分别用柱状图、饼图来表示。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。 [1-2] 模型-视图-控制器(MVC)是Xerox PARC在二十世纪八十年代为编程语言Smalltalk-80发明...

weixin_45504233的博客 8182

[61]MVC与三层架构

三层架构和MVC 三层架构 (3-tier application) 是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。区分层次的目的即为了“高内聚,低耦合”的思想。  1、表现层(UI):展现给用户的界面,即用户在使用一个系统的时候的所见所得。     2、业务逻辑层(BLL):对数据层的操作,对数据业务逻辑处理。&...

周小董 2万+

MVC三层架构理解

MVC三层架构 什么是MVC: Model view Controller 模型、视图、控制器 以前的架构 用户直接访问控制层,控制层就可以直接操作数据库; servlet--CRUD-->数据库 弊端:程序十分臃肿,不利于维护 servlet的代码中:处理请求、响应、视图跳转、处理JDBC、处理业务代码、处理逻辑代码 架构:没有什么是加一层解决不了的! 程序猿调用 ↑ JDBC (实现该接口) ↑ Mysql Oracle SqlServer ....(不同厂商) MVC三层架构 M

Frank---7的博客 7万+

MVC与三层架构

文章目录一、什么是MVC二、什么是三层架构三、、MVC与三层架构的联系四、MVC与三层架构的异同:1、不同点2、相同点 一、什么是MVC MVC(Model View Controller)是软件工程中的一种软件设计模式,它把软件系统分为模型、视图和控制器三个基本部分。用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。 M:(Model) 模型 : 应用程序的核心功能,管理这个模块中用的数据和值(bean,dao

weixin_51697044的博客 1630

springboot三层架构与MVC,以及三层架构入门

View视图,为用户提供界面,与用户直接进行交互,处理数据可视化的部分。Model模型,用于处理应用程序数据逻辑的部分,实现增删改查功能,通常负责在数据库中存取数据,代表一个存取数据的对象或JAVA POJOController控制器,处理用户交互的部分。通常负责从视图读取数据,控制用户输入,并向model发送数据,在数据变化时更新视图。1)接受请求,并将该请求跳转(转发,重定向)到模型进行处理2)模型处理完毕后,再通过控制器,返回给视图中的请求。

weixin_65644655的博客 2797

MVC、三层架构

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范。用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。最简单的、最经典就是JSP(view) +Servlet(controller) + JavaBean(model)视图和逻辑隔离开来单一职责控制器是核心。

2301_79704601的博客 1329
上一篇: 李开复:算法的力量
下一篇: JSP内置对象及其作用
kevin_long
博客等级 码龄20年 30粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值