MVC设计模式简介

MVC 设计模式一般指 MVC 框架,M(Model)指数据模型层,V(View)指视图层,C(Controller)指控制层。使用 MVC 的目的是将 M 和 V 的实现代码分离,使同一个程序可以有不同的表现形式。其中,View 的定义比较清晰,就是用户界面。

  在 Web 项目的开发中,能够及时、正确地响应用户的请求是非常重要的。用户在网页上单击一个 URL 路径,这对 Web 服务器来说,相当于用户发送了一个请求。而获取请求后如何解析用户的输入,并执行相关处理逻辑,最终跳转至正确的页面显示反馈结果,这些工作往往是控制层(Controller)来完成的。

  在请求的过程中,用户的信息被封装在 User 实体类中,该实体类在 Web 项目中属于数据模型层(Model)。

  在请求显示阶段,跳转的结果网页就属于视图层(View)。

  像这样,控制层负责前台与后台的交互,数据模型层封装用户的输入/输出数据,视图层选择恰当的视图来显示最终的执行结果,这样的层次分明的软件开发和处理流程被称为 MVC 模式。

  在学习 Servlet 及 JSP 开发时,JavaBean 相当于 Model,Servlet 相当于 Controller,JSP 相当于 View。

  总结如下:

  视图层(View):负责格式化数据并把它们呈现给用户,包括数据展示、用户交互、数据验证、界面设计等功能。

  控制层(Controller):负责接收并转发请求,对请求进行处理后,指定视图并将响应结果发送给客户端。

  数据模型层(Model):模型对象拥有最多的处理任务,是应用程序的主体部分,它负责数据逻辑(业务规则)的处理和实现数据操作(即在数据库中存取数据)。

  SUN 公司推出 JSP 技术的同时,也推出了两种 Web 应用程序的开发模式。即 JSP+JavaBean 和 Servlet+JSP+JavaBean。

  JSP+JavaBean

  JSP+JavaBean 中 JSP 用于处理用户请求,JavaBean 用于封装和处理数据。该模式只有视图和模型,一般把控制器的功能交给视图来实现,适合业务流程比较简单的 Web 程序。

  通过上图可以发现 JSP 从 HTTP Request(请求)中获得所需的数据,并进行业务逻辑的处理,然后将结果通过 HTTP Response(响应)返回给浏览器。从中可见,JSP+JavaBean 模式在一定程度上实现了 MVC,即 JSP 将控制层和视图合二为一,JavaBean 为模型层。

  JSP+JavaBean 模式中 JSP 身兼数职,既要负责视图层的数据显示,又要负责业务流程的控制,结构较为混乱,并且也不是我们所希望的松耦合架构模式,所以当业务流程复杂的时候并不推荐使用。

  Servlet+JSP+JavaBean

  Servlet+JSP+JavaBean 中 Servlet 用于处理用户请求,JSP 用于数据显示,JavaBean 用于数据封装,适合复杂的 Web 程序。  

  相比 JSP+JavaBean 模式来说,Servlet+JSP+JavaBean 模式将控制层单独划分出来负责业务流程的控制,接收请求,创建所需的 JavaBean 实例,并将处理后的数据返回视图层(JSP)进行界面数据展示。

  Servlet+JSP+JavaBean 模式的结构清晰,是一个松耦合架构模式,一般情况下,建议使用该模式。

  MVC优缺点

  任何一件事都有利有弊,下面来了解一下 MVC 的优缺点。

  优点

  多视图共享一个模型,大大提高了代码的可重用性

  MVC 三个模块相互独立,松耦合架构

  控制器提高了应用程序的灵活性和可配置性

  有利于软件工程化管理

  总之,我们通过 MVC 设计模式最终可以打造出一个松耦合+高可重用性+高可适用性的完美架构。

  缺点

  原理复杂

  增加了系统结构和实现的复杂性

  视图对模型数据的低效率访问

  MVC 并不适合小型甚至中型规模的项目,花费大量时间将 MVC 应用到规模并不是很大的应用程序,通常得不偿失,所以对于 MVC 设计模式的使用要根据具体的应用场景来决定。

(0)

相关推荐

  • SpringMVC学习01(什么是SpringMVC)

    SpringMVC学习01(什么是SpringMVC)

  • 我这里整理了一个关于中药剂量的一个常识的简介,分享给各位朋友。

    关于度量:秦始皇统一六国,统一度量衡,但是通过中医的学习会发现度量衡还是很混乱,半斤八两,那么一两是多少呢?还有论钱论厘的,有的说一小勺,有的说一小杯,有的说一小碗,你怎么弄?我这里整理了一个关于中药 ...

  • 趋势丨蔗糖理想替代品——阿洛酮糖简介

    导语 作为蔗糖的理想替代品,阿洛酮糖是什么?有何特点? 文:中国食品报网丨欣文 图:Stockfood 我们曾分享过一篇关于甜味剂的解读文章,对甜味剂的优点及工业应用进行了介绍,指出世界范围内无糖和低 ...

  • 李默飞个人简介

    易学是我国劳动人民智慧的结晶,是一门古老的学科,自古就充满了无限的神秘,一直是人们不断探索和研究的学科.古往今来有无数名人都在易学上有突出成就,如谷鬼子.诸葛亮.袁天罡等名人.近当代更是涌现出数不胜数 ...

  • 冉龙清老师个人简介

    国际易学联盟副主席 四川易经协会名誉会长 中华易经风水学院常务院长 中国易经协会会员 四川周易研究院副院长 本人于五十年代中期出生于寺庙林立的大巴山中麓,其间多有大贤隐士深隐于此.上小学初中适逢&qu ...

  • 人MTHFR基因多态性检测试剂盒(荧光PCR法)简介

    产品介绍 [注册证编号]:国械注准20173403239 [产品规格]:30人份/盒 [存储条件]:1.-20±3℃避光保存,有效期10个月 2.试剂盒在-16℃~8℃的温度范围内运输,运输时间不超过 ...

  • 迁移学习——入门简介

    一.简介 背景:现如今数据爆炸: 对机器学习模型来说要求快速构建,强泛化 对于数据来说,大部分数据没有标签 所以收集标签数据和从头开始构建一个模型都是代价高昂的,需要对模型和带有标签的数据进行重用 传 ...

  • 馆藏 明代著名画家,传世山水画作及个人生平简介

    明 沈周 纵193.8X横98厘米 台北故宫博物院藏 沈周(1427-1509)吴门四家之首.字启南,号石田,更号白石翁.长州人.世代隐居吴门.他凭借想象描绘庐山为他的老师陈宽作寿.在画法上宗学王蒙, ...

  • 木醋杆菌简介

    醋杆菌属(学名:Acetobacter)是乙酸细菌的一个属,其特点是能够在有空气的条件下将乙醇转化为乙酸.醋酸杆菌属包含有多个种.很多其它的细菌也能在不同的条件下产生乙酸,但醋酸杆菌属中的细菌只在这一 ...

  • SunnyUI 学习1.1——简介与界面布局的使用

    SunnyUI 学习1.1--简介与界面布局的使用 炎黄子孙__ 2021-01-01 14:59:26  3015  收藏 12 分类专栏: SunnyUI C# winform 文章标签: c# ...