一种基于MVC设计模式的开发框架
2015-06-24俞新凯曾光辉毛敏
俞新凯 曾光辉 毛敏
摘要:MVC设计模式是一种常用的设计模式,其在软件工程中的复用程度非常高。在系列开发技术规范中,有众多基于MVC设计模式的框架工具。介绍了一种名为DIPO的基于MVC设计模式的开发架构,其主要特点是能简化复杂的业务逻辑,使所有业务功能模块的开发流程都归结为“数据—输入—处理—输出”,从而使开发工作变得简单、高效。DIPO架构可以为B/S架构的软件项目开发提供参考。
关键词:MVC;开发框架;软件复用;DIPO;开发流程
DOIDOI:10.11907/rjdk.151549
中图分类号:TP303
文献标识码:A 文章编号
文章编号:16727800(2015)006004103
作者简介作者简介:俞新凯(1975-),男,广东韶关人,硕士,广州城建职业学院机电与信息工程学院讲师、系统分析师,研究方向为软件工程理论与方法、数据库技术与理论、Java Web技术与Android应用开发。
0 引言
在当今以互联网技术为主导的软件业界中,Web应用软件在数量上占据了相当大的比重,无论是PC端还是移动终端,都可以用浏览器来访问Web服务。互联网上每天都在发布大量的Web应用软件,因此,如何在Web应用开发过程中采用高效的开发流程,并且在其后续的升级改造中也能按照该流程进行持续性开发,是大多数软件企业和开发者面临的问题。
Web应用软件采用的软件架构是典型的B/S模式,前端展现层为浏览器,后端为HTTP服务器,如果将应用服务器与数据库服务器分离,则形成三层结构体系,即“浏览器—Web服务器—数据库”。
MVC设计模式是解决三层结构体系的重要设计模式,但MVC也仅是给出抽象的解决方案,而未给出具体实现过程的技术解决方案。不少软件组织专门为三层结构开发了基于MVC设计模式的开源架构和工具,如Struts、Spring等。由于这些开发架构为了满足大多数Web应用软件的开发需要和众多的功能技术需求,在不断的版本升级中变得越来越庞大,而对于某一个应用软件而言,其使用到的功能只是这些开源框架中的一小部分,为此却不得不在自己的应用中加入大量依赖插件,使程序变得十分厚重,不便于长期开发和维护。笔者在总结多年的Web应用软件开发的经验基础上,设计出一套能实现MVC设计模式的轻量级开发框架,以满足大多数轻量级的Web应用程序设计要求。
1 MVC设计模式
MVC设计模式的主导思想是将软件系统分为3层:①Model(模型层):负责实现系统中每个业务模块的逻辑细节,对输入的数据进行加工处理,并输出返回给前端页面。模型层通常要对数据库进行读取与存储操作;②View(视图层):直接面向用户的系统界面,负责往后台业务层传递用户输入的参数,并接收从后台业务单元返回的结果数据。视图层的主要作用是接收用户发出的请求,以及把系统的处理结果展现给用户;③Controller(控制器):是系统中负责联系模型层和视图层的中间桥梁,起调度作用。在涉及数据转发、视图选择、安全认证、系统环境配置等方面事务时,通常由控制器负责完成[1]。
MVC体系结构采用分治的思想,实现了表示层与数据层的分离。MVC分层有助于管理复杂的系统逻辑,视图层和模型层通过数据交换接口实现两者之间的数据对接。在视图层通常采用标签语言的形式撷取数据,而在模型层则用控制器提供的数据接口接收和输出数据。MVC分层体系还简化了不同分工的开发人员的开发复杂度,使其可以相对独立地完成开发任务。开发视图层与开发模型层的人员可以并行工作,只要在同一个控制器下,遵循统一的数据标准即可[2]。图1描述了MVC设计模式的逻辑模型。
2 DIPO框架介绍
2.1 DIPO设计理念
DIPO全称为“Data—Input—Process—Output”,即“数据—输入—处理—输出”,它以简化系统开发流程、提高软件复用程度为目标。从开发者的角度看待系统,任何系统的所有功能模块,都可以归结为“数据—输入—处理—输出”这条处理流程,系统中任何一次请求与响应的处理过程,都可以看作是一个Action Unit(活动单元),每个活动单元即是一次“Data—Input—Process—Output”的实施过程。
因此,无论是从设计上的抽象层到实现中的具体层,还是从软件的开发期到运行期,都遵循这样一个简单流程,使系统的设计、开发、维护、升级都变得轻量级且易于扩展。
DIPO开发框架采用MVC设计模式[3],可以完成诸如界面呈现、视图分派、用户交互、数据刷新、定时调度、对象传输、安全控制、应用环境配置等众多功能;前端采用W3C标准的系列语言,包括HTML、CSS、JavaScript,其中还大量使用了Ajax技术;在数据传输模式上涵盖了WebService、HTTP、FTP、DTO(数据传输对象)、Socket、RMI(远程方法调用)等,还集成了J2EE技术体系中的众多部件,可以与不同框架体系的系统进行标准化的数据交换。
2.2 DIPO与MVC的关系
DIPO框架是实现MVC设计模式的一种具体的框架技术,同时也对MVC作了进一步改造,其中包括:
(1)DIPO中的Data在MVC模式中未直接体现出来。将Data扩展出来的主要意义在于让开发者对所有原始数据和加工数据予以高度关注。因为数据由始至终都代表着用户对于系统的真正意图,系统所做的一切都是围绕着数据展开的。因此,Data才是用户与系统共同关注的核心要素。
(2)DIPO中的Input和Output对应于MVC中的视图层,即将MVC中的View分解成输入——Input,与输出——Output。在这种设计思想的引导下,开发者可以清晰地区分视图层中哪些是用户对系统的请求,哪些是系统对用户的响应,把数据来源和去向弄清楚,才能准确无误地处理好业务单元。
(3)DIPO中的Process对应于MVC中的模型和控制器,再度对MVC模式作了简化。因为控制器是框架提供者在应用系统开发前,就已按照框架的复用机制定制好的,所以框架的第三方开发者可以不必关注控制层的具体细节,而将主要开发精力投入到具体的界面设计和业务处理逻辑上。
3 DIPO框架开发流程
基于DIPO开发框架的应用系统,在用户与系统进行任何一次交互动作时,都是以一个Action(活动单元)作为基本粒度。一条常规的DIPO开发流程如下(以新增机构交易为例):
(1)定义该活动的输入数据项(上级机构、机构名称、机构类型等)、输出数据项(机构名称、操作结果)。
(2)为这个交互活动命名一个txcode(交易码),名为DeptAdd。
(3)在配置文件actionlist.xml中为交易码DeptAdd添加一个节点,指明该交易要调用的程序单元为DeptMng,即一个Java程序,并且指明在程序处理完毕后,要将结果发布到哪一个视图中(可以是JSP、HTML、TXT、图片、导出下载文件等),如DeptList.jsp。
(4)为DeptAdd交易指定一个触发点,分为以下3种情况:①通过系统菜单项,用户在主界面上点击对应菜单项即可触发该交易;②通过系统中某个页面中的用户操作触发,如按钮、按键、表单提交等;③在执行多个交易串行处理过程中,DeptAdd交易是其中一个环节。
新增机构交易DeptAdd属于上述的第一种方式,即通过系统菜单项获得该交易的入口点。
(5)编写一个Java程序DeptAdd.class作为交易活动处理单元,完成对用户传入参数如上级机构ID、本级机构名称的数据处理。如果合法,则向系统添加一条机构数据。
(6)如果DeptAdd交易涉及对数据库的访问和更新操作,则还需要编写相关的数据库表以及SQL语句来执行完成过程。
(7)编写响应(返回)页面。在本例中,DeptList.jsp是交易处理完毕后的响应(返回)页面,页面编写属于静态界面设计部分,其中的动态数据则由活动单元返回的参数来实时更新。
4 结语
从上述开发流程可以看出,遵循“Data—Input—Process—Output”的步骤,可以使开发流程变得十分简单、清晰,包括“什么样的数据(Data)”、“从哪里传入(Input)”、“由哪个单元处理(Process)”、“输出到哪里去(Output)”。
DIPO开发框架是一套笔者于2009开发成型的Web应用开发框架,并已成功地推广到多家企业的Web应用。其基于MVC设计模式,迎合了当今大多数软件开发者的模式取向。同时采用Java程序语言开发后端程序,采用HTML、CSS、JavaScript和Ajax开发前端界面,使视图层、业务层、数据库可以分别交给不同的开发人员进行并行开发,而中间的控制层则由DIPO框架自身实现,无需第三方开发者另行开发,从而大大提高了开发效率。
参考文献:
[1]任广震,侯进,王献.MVC模式在B/S结构政务系统的应用研究[J].计算机应用与软件,2014 (8):5458,74.
[2]罗丽娟,陈永政.浅谈MVC框架模式[J].科学咨询,2013(2):1213.
[3]李丽,顾明.基于J2EE的系统设计方法和模式比较[J].计算机应用研究,2002(11):3842.
[4]周辉,任海军,马亮,等.MVC设计模式及其在信息系统开发中的应用[J].软件导刊,2012,11(10):120122.
责任编辑(责任编辑:黄 健)
英文摘要Abstract:The MVC design pattern is a common pattern in software engineering. A project based on MVC pattern is highly reused. There are many framework tools based on MVC in serial of software development standards. This article mainly produces a framework named DIPO based MVC. DIPO aims to simplify business logical and implement detail,put the development process of all business models in a flow,called “Data—Input—Process—Output”. DIPO framework may be a reference to software development project.
英文关键词Key Words: MVC;Development Framework;Software Reuse;DIPO;Development Process