论MVC架构设计模式分析

论MVC架构设计模式分析

马旺旺

(石家庄铁道大学,河北省石家庄市,050000)

摘 要Web服务以其良好的协同性和可扩展性,越来越受到企业的关注,但如何构建企业的Web服务是一个非常复杂的问题.MVC是一种架构松散耦合,高柔韧性软件的设计模式,它为架构Web服务提供一种很好的模型.本文描述了MVC设计模式,通过它和Web服务架构相关要素的类比,用MVC的设计模式描述了Web服务的体系结构,建立了基于MVC模式的Web服务架构。针对目前 J2EE 开发中流行的软件架构进行分析与应用,提出了一种层次分离与应用的方法,并且详细的说明了该架构的优缺点。

关键词:MVC;架构;设计模式;软件

Analysis of MVC architecture design pattern

Ma Wangwang

(Shijiazhuang Tiedao University,Shijiazhuang City, Hebei Province,050000)

Abstract:With its good coordination and scalability, web services are more and more concerned by enterprises, but how to build enterprise web services is a very complex problem. MVC is a design pattern of software with loose coupling and high flexibility, which provides a good model for building web services. This paper describes the MVC design pattern, through its analogy with the relevant elements of Web services architecture, The architecture of web service is described with MVC design pattern, and the architecture of web service based on MVC pattern is established. This paper analyzes and applies the popular software architecture in J2EE development, puts forward a method of level separation and application, and explains the implementation of the architecture in detail.

Key words:MVC; Framework; Software; Design mode

 

0 引言

MVC架构是“Model-View-Controller”的缩写,即“模型-视图-控制器”。MVC 程序是由这3个部分组成。MVC架构是一个复杂的架构 ,其设计和实现也是相对复杂的。但是 ,我们已经设计了功能和安全性很好的设计模式,并且可以把多种设计模式结合在一起,使MVC架构的实现转换为相对较为容易的代码实现。

1 MVC 设计思想

MVC的思想是把一个应用程序的数据输入、数据处理、结果输出流程按照Model、View、Controller 的方式进行有组织的分离,看似分离却又是统一。这样一个应用程序设计被分成3个部分:模型层、视图层、控制层。 

1.1  模型

模型是应用程序的主体部分。模型表示业务数据和业务逻辑 ,一个模型能为多个视图提供数据。由于同一个模型可以被多个视图重用,所以提高了应用的可重用性。

业务模型是 MVC 最主要的核心。也称企业模型,它为企业提供一个框架结构,以确保企业的应用系统与企业经常改进的业务流程紧密匹配。可以说,业务建模主要是从业务的角度而非技术角度对企业进行建模。

1.2  视图

视图是用户交互界面,对于 Web 应用程序来说,可以是 HTML,JSP 等界面。

随着应用程序的复杂度的提高和规模的扩大,界面的处理也变得非常复杂。应用程序可能有很多不同风格和类型的视图,MVC设计模式对于视图的操作只是数据的采集和处理,以及用户的请求,而不能进行业务流程的处理,也就是带有功能操作的部分交予模型处理。例如一个购物车的视图只接受来自模型的数据并显示给用户,以及将用户界面的输入数据和请求传递给控制和模型。

1.3  控制

控制器接受用户的输入并调用模型和视图去完成用户的需求,所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。

2优缺点

2.1 优点

耦合性低:视图层和业务层分离,这样就允许更改视图层代码而不用重新编译模型和控制器代码,同样,一个应用的业务流程或者业务规则的改变只需要改动MVC的模型层即可。因为模型与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。

重用性高:随着技术的不断进步,需要用越来越多的方式来访问应用程序。MVC模式允许使用各种不同样式的视图来访问同一个服务器端的代码,因为多个视图能共享一个模型,它包括任何WEB(HTTP)浏览器或者无线浏览器(wap),比如,用户可以通过电脑也可通过手机来订购某样产品,虽然订购的方式不一样,但处理订购产品的方式是一样的。由于模型返回的数据没有进行格式化,所以同样的构件能被不同的界面使用。MVC使开发和维护用户接口的技术含量降低。

部署快:使用MVC模式使开发时间得到相当大的缩减,它使程序员(Java开发人员)集中精力于业务逻辑,界面程序员(HTML和JSP开发人员)集中精力于表现形式上。

2.2  缺点

没有明确的定义: 完全理解MVC并不是很容易。使用MVC需要精心的计划,由于它的内部原理比较复杂,所以需要花费一些时间去思考。同时由于模型和视图要严格的分离,这样也给调试应用程序带来了一定的困难。每个构件在使用之前都需要经过彻底的测试。

增加系统结构和实现的复杂性: 对于简单的界面,严格遵循MVC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。

3总结

基于Web的MVC框架在J2EE的世界内已是空前繁荣,TTS网站上几乎每隔一两个星期就会有新的MVC框架发布,比较好的MVC,老牌的有Struts、Webwork。新兴的MVC 框架有Spring MVC、Tapestry、JSF等。这些大多是著名团队的作品,另外还有一些边缘团队的作品,也相当出色,如Dinamica、VRaptor等,这些框架都提供了较好的层次分隔能力,在实现良好的MVC 分隔的基础上,通过提供一些现成的辅助类库,同时也促进了生产效率的提高。

参考文献:

[1] 百度百科,MVC框架,https://baike.baidu.com/item/MVC%E6%A1%86%E6%9E%B6

[2] MVC有什么部分,如何实现,qq_21612319,https://blog.csdn.net/qq_21612319/article/details/79731324

[3] MVC的优缺点,SHUIPING_YANG,https://blog.csdn.net/zhezhebie/article/details/82431612

[4] MVC框架理解及优缺点,青春阳光的岁月,https://www.cnblogs.com/lxwphp/p/10456373.html

[5] MVC实现过程,深沉的简单,https://www.jianshu.com/p/f844d57716f6

原文地址:https://www.cnblogs.com/mawangwang/p/13098094.html