深圳云之家网络有限公司
摘要:MVC设计模式是基于Web应用开发的首选模式,当前许多流行的框架都是基于MVC设计模式的。MVC是项目中的一种通用框架模式,用于描述程序结构中各部分职责及交互方式,其主要作用就是通过控制层实现模型层和视图层的有效分离。本文讲述了基于MVC设计模式的工作原理和工作流程,并用实例来说明如何理解和应用MVC设计模式,帮助开发人员更好地理解和使用MVC。
关键词:MVC,改进;模式研究
引言
模型-视图-控制器(MVC)是XeroxPAR在20世纪80年代为编程语言Smalltalk-80发明的一种软件设计模式,至今已被广泛使用。各种基于MVC设计思路的开发环境也随处可见,Web应用的快速增加和Web应用复杂度的提高,MVC这一设计模式逐渐被Web系统应用开发所采用,尤其在大型的复杂的信息系统中采用这种模式来进行开发,可以大大减小软件系统开发过程的开发难度,提高开发效率,降低开发风险。
一、MVC概念
MVC是设计开发Web信息系统的程序架构,是Model-View-Controller缩写,Model即模型,View即视图,Controller即控制器。一个应用都可以把它分成3个部分:Model、View和Controller,每个部分负责不同的功能,3个部分之间既有区别又有联系,这3个部分结合起来完成信息系统应用。按照软件高内聚、低耦合的设计要求,整个系统又可以划分为若干功能独立的模块,各个模块都可以用Model、View和Controller来进行刻画。
二、MVC设计模式
MVC设计模式适用于大型可扩展的Web系统的开发。根据功能的不同,MVC模式将一般的软件系统划分为三个部分,即模型(Model);视图(View);控制器(Controller)。如图1所示。
模型是整个MVC中的核心部分,封装了与应用问题中业务逻辑相关的数据以及数据的操作过程。模型一方面被控制器使用,完成应用程序的行为改变,另一方面为视图的状态查询提供相应数据。视图是MVC模式下面向用户的显示界面。视图将用户数据传送给模型处理,并由控制器控制,从模型处获得更新后的数据进行显示。控制器是视图和模型间的桥梁,用于处理用户的操作请求。它从视图获取用户的输入并决定调用相应的模型构件去处理。
MVC的处理过程是这样的:对于每一个用户输入的请求,首先被控制器接收,并决定由哪个模型来进行处理,然后模型通过业务处理逻辑处理用户的请求并返回数据,最后控制器用相应的视图格式化模型返回的数据,并通过显示页面呈现给用户。
这样划分MVC能有效地区分显示数据和存储数据的功能模块,使得页面数据和业务逻辑之间的耦合度降低。但是,MVC也存在一定的缺陷。在系统开发过程中,存在许多共性业务需求,相似功能模块的开发往往会因为人员素质的不同而破坏代码的统一性,使代码逻辑复杂,复用率低视图和模型的交互基于请求/响应的模式,这导致更新页面中的数据必须对页面进行整体刷新,造成视图对未变化数据的不必要的频繁访问,降低了访问效率,使系统处理数据能力大大降低。
三、改进MVC设计模式
1、改进MVC架构设计
针对传统MVC设计模式存在的代码复用率低、数据处理能力低的缺陷,设计了改进的MVC,其在视图和控制器、控制器与模型的交互中应用了中间件技术,并在视图层中采用了页面局部刷新技术。其总体框架如图2。
中间件是基础软件的一大类,属于可复用软件范畴。中间件处于系统软件。操作系统、网络软件和数据库之上,应用软件之下,通过提取某些具体应用中的共性业务需求,将相关解决方案构件化,为处于上层的应用软件提供运行与开发的环境,并通过简单的客户化定制,帮助用户灵活高效地开发应用软件。在改进的MVC设计模式中使用中间件技术,可以把系统开发过程中相似的功能模块用相应的中间件来替代,使系统各层间的耦合度进一步降低,提高代码复用率。
页面局部刷新技术的使用,可以使用户请求与服务器响应异步化,实现无刷新更新页面。Ajax是多种网页技术的结合,在不重新载入整个页面的情况下通过操作DOM来实现页面局部更新和异步请求。所以系统中页面导航数据校验等工作可以交给Ajax来执行。同时,不是所有的业务逻辑都交由服务器进行处理,客户端负责处理一些简单的数据校验和数据编辑等工作。把原本由控制器和模型完成的工作转移到客户端来完成,利用客户端闲置的处理能力来进行处理,减轻了服务器的负担。
四、改进MVC处理流程
改进的MVC设计模式的时序图,用户通过浏览器发送HTTP请求传递给视图和Ajax,Ajax将请求变量数据存储在变量中。如果客户端能够直接处理或不需要进行刷新操作,Ajax则直接进行处理,并更新视图,将结果返还给用户,而不能直接被客户端处理必须由后台服务器才能完成的操作,Ajax就将请求发送给控制器,同时通过XML或视图将实体数据也传输给控制器,控制器根据接收的用户请求,自动判断需要调用的中间件和模型来进行操作。
结束语
MVC设计模式在目前是一种应用比较普遍的设计模式,MVC设计模式有效地将数据层、控制层、表现层分离开来,让开发人员更容易理解Web系统的工作方式。模型文件、控制器文件和模板文件分开书写,提高了程序的可读性;针对不同的数据库编写不同的模型文件,提高了代码的复用性;业务逻辑开发人员只需编写控制器文件,前端开发人员表现层的模板文件,降低了程序开发的风险,在一定程度上也解决了开发人员不足的情况。并成功地将此种架构模式应用于企业质量异议换货系统的架构设计中,项目实践表明该设计模式提高了系统的开发效率和代码的可复用率,并且降低了各层间的耦合性,为其他具有同种结构的应用系统的研发提供了一定的参考。
参考文献
[1]张智雯.基于Ajax与MVC模式的信息系统的研究与设计[J].电子技术应用.2018(02)
[2]张栋.基于Ajax和MVC的电力通信告警系统的设计实现[J].计算机应用.2017(08)
[3]陈伟,黄天.基于MVC的e-ERP系统的设计与实现[J].计算机应用与软件.2017(12)
[4]何琪桂.基于.NET技术的网上公文签收系统设计[J].科技通报.2016(12)