MVC模式下程序设计(通用8篇)
MVC模式下程序设计 篇1
1 MVC基本概念
MVC是Model View Controller的缩写,Model是指数据模型,或者称为业务应用逻辑,View是指用户视图界面,Controller则是控制器,用来提供应用的处理过程控制。使用MVC的目的是将数据模型和用户界面的实现程序代码分离,这样就可以使同一个程序表现为不同的形式。控制器的目的则是操控数据模型和用户界面使两者同步,一旦数据模型改变,用户视图界面也同步更新。
模型-视图-控制器(MVC)是Xerox PARC在八十年代为编程语言Smalltalk-80发明的一种软件设计模式,至今已被广泛使用。最近几年被推荐为Sun公司J2EE平台的设计模式,并且受到越来越多的开发者的欢迎。
2 MVC的工作原理
2.1 关于Model View Controller工作原理
用户请求的事件提交给给控制器(Controller),从而改变数据模型或用户界面,或者两者都改变。控制器对数据模型的数据进行改变,对应的用户界面就会发生改变,依次类推,控制器改变了用户界面,控制器会从数据模型中获取数据来刷新自己。通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现,如图1所示。
根据Smalltalk语言关于MVC程序设计的思想,每个模块的作用如下。
数据模型(Model)的作用:
封装应用程序的状态和实现应用程序的功能(逻辑、算法)
响应状态查询
通知视图改变
用户界面(View)的作用:
解释模型并发送模型更新请求
截获用户的输入,发送给控制器
允许控制器选择视图
控制器(Controller)的作用:
定义应用程序的行为
将用户的动作映射成模型的更新
选择响应的视图
2.2 MVC的优势和不足
对于早期的Web应用程序,大都使用过程化语言创建,它们将对数据操作的代码和像HTML这样的用户界面代码混在一起,这使得程序的逻辑比较混乱,而且容易出错。MVC模式从根本上强制性的将它们分开,优势是很明显的:
第一,最大化的重用代码。也就是说,对于不同的方式来访问应用程序,可以使用同一个数据模型,即多个视图能共享一个模型,对于不同的用户界面需求,使用同一模型都能处理它们。其原因就在于MVC模式已经将数据和业务规则分开,所以允许最大化的重用代码。
第二,程序设计更加灵活。因为数据模型是用户代码产生的,并且与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。如果想把进迁移或者改变数据源,只需改变数据模型,而程序其它部分不用调整。由于运用MVC的应用程序的三个部分是相互独立,改变其中一个不会影响其它两个,所以依据这种设计思想能构造良好的松偶合的构件。
MVC模式存在的不足:
第一,MVC模式将一个应用程序分成了三个部分,在设计时各部分之间关系比较复杂,而且同一个工程将包含比以前更多的文件。MVC模式没有明确的定义,所以完全理解MVC模式并不是很容易。
第二,系统调试难度加大。由于模型和视图要严格的分离,这样给调试应用程序带来了一定的困难,每个构件在使用之前都需要经过独立的测试。
综合MVC模式的优点和不足,MVC模式早期并不适合小型甚至中等规模的应用程序,这样会带来额外的工作量,增加应用的复杂性,但现在由于开发工具软件的功能补充,此问题不再存在。对于开发有大量用户界面,并且逻辑复杂的大型应用程序,最初使用MVC模式框架时,会花费一定的工作量,但从长远的角度来看,后期会提高软件开发的效率。
3 Grails环境下应用实例
Grails是一个遵循MVC设计模式的开发框架。它分别用Domain Class、View、Controller对应于MVC的模型、视图和控制器。可以简单的把一个Domain Class理解为数据库中的数据表,Grails在底层通过Hibernate(Grails自带的数据库驱动)将Domain Class和数据库的表进行映射,用户界面(View)在Grails中指的是GSP页面,它用于显示用户界面。GSP与JSP类似,既可以编写静态网页的元素,也可以嵌入Groovy代码实现动态内容。控制器(Controller)在Grails中充当着重要的角色:它可以响应用户的请求,可以接收用户提交的表单,还可以访问模型的数据,并传递给用户界面。
下面通过在Grails环境下的开发一个小的系统来说明MVC模式的高效和强大,首先配置环境变量。
3.1 Grails环境配置
第一,配置JAVA环境变量;
首先,下载JDK压缩包,解压后到本地指定文件夹内,例如本文例子中使用jdk1.6.0,解压到以下目录:D:Java Sessionjdk1.6.0,其次,设置环境变量(过程略)。
第二,配置Grails环境变量;
Grails配置与Java配置方法相同,先解压Grails压缩包,然后新建变量Grails_Home,编辑系统环境变量Path,插入新建的变量“%Grails_Home%bin”,即可。
第三,启动测试。
启动命令提示符状态,输入命令java-version,看到版本信息(当前使用的版本是1.6.0_12),证明java系统配置成功,同样输入命令Grails-version,如果看到版本信息则证明Grails配置成功。
3.2 MVC在Grails框架中的体现
使用命令grails create app Project1在当前文件夹下创建一个工程文件Project1,此工程名为Project1,则会自动生成如下系统文件结构,对于系统文件夹说明如下:
grails-app
Conf:存放配置信息,包含数据源、应用程序启动时自动执行的类
controllers:存放控制器(“MVC”的“C”)
domain:存放域类(“MVC”的“M“)
i18n:存放国际化资源文件
services:存放service类
taglib:存放标签库类
views:存放视图模版(“MVC”的V,每个控制器对应一个文件夹并存放在Views中,每个文件夹中可能会有多个页面)
layouts:存放布局模板
lib:存放其它Jar包(如JDBC驱动等)
test:存放测试代码
target:存放编译生成的目标文件
src:存放Java或Groovy源程序
web-app
css:存放CSS样式表
images:存放图片文件
js:存放Java Script文件
WEB-INF:存放部署相关的文件
对于上述目录结构,它约定了不同层次代码存放的位置以及项目的组织方式,这既提供了“约定优于配置”的最佳实践,又节省了开发人员配置项目的精力。
3.3 一个说明问题的案例
对于上面建立的工程,创建M(model),V(view),C(controller)。
添加Domain Class
首先创建model,在grails中就是创建Domain Class,为刚创建好的项目添加一些功能。,Domain Class实质上是数据库表映射的实体类。通过控制台,进入项目的根文件夹(注意:本文出现一切的控制台输入,除create-app外,都需要在项目文件夹中执行),输入grails create-domain-class User,新创建的Domain类出现在了grails-app/domain文件夹中,同时Grails还创建了相应的Test类。用记事本打开grailsappdomain文件夹中的User.groovy,加入如下内容:
创建Controller
接下来为Domain Class Team类创建Controller,在控制台输入grails create-controller User,Grails会在grailsapp/controllers中创建一个名为User Controller的类。编辑User Controller.groovy文件。加入如下代码:
这一行代码,它使User表有了相应的增、删、查、改功能的页面。
创建View
最后生成视图界面,在控制台输入grails generate-Views User,Grails会在grails-app/views中创建User的所有浏览、删除、编辑、列表的视图,使用传统方法需要大量工作的事情,在这里可以快速的实现。在控制台中输入grails run-app,运行此工程文件以查看效果,在此界面可以对记录进行增加,浏览,编辑操作,如图2所示。
4 总结
对于使用传统编程习惯的人,MVC可能稍微显得有点繁琐,但无论从编程的效率还是程序的执行效率来说,MVC都是不可替代的,基于JAVA的平台,也使MVC框架有了更强的生命力。
摘要:本文通过对MVC模式下的程序设计概念和原理的介绍,接合Grails框架模式下的程序设计案例,对MVC模式进行分析,指出其程序设计的优点和不足,帮助设计者更好的掌握此开发模式。
关键词:MVC,Grails
参考文献
[1]宋友,梁士兴,黄璐等.Grails技术精解与Web开发实践[M].北京:清华大学出版社,2009.9
[2]http://www.grails.org
MVC模式下程序设计 篇2
【关键词】MVC;Struts;框架;实验室管理系统
随着高等院校教育改革的深入和发展,大学实验室已成为学校学生学习和应用专业知识、增强动手能力的重要基地。但是受传统管理方式的约束,仪器设备的管理工作普遍比较混乱,学生与实验室管理者之间缺少有效的沟通,造成大多数实验室不能够满足教学计划之外的实验要求,既降低了仪器设备的使用效率,也不利于学生综合素质的锻炼提高。虽然国内外现有的实验室管理信息系统种类繁多,但真正功能比较完备适合于高校教学型实验室的成型系统却非常少。本文针对高校实验室管理的现状,通过使用先进的J2EE技术,选择B/S模式,开发了基于MVC设计模式的一个实验室管理系统。本系统极大提高了对实验室及仪器设备使用的管理,带动实验室的管理工作走向规范化、制度化、科学化。
1、关键技术
1.1MVC设计模式
MVC是Xerox PARC在八十年代为编程语言Smalltslk-80[1]所发明的一种软件设计模式,至今已被广泛使用,并被推荐为Sun公司J2EE平台的设计模式。MVC把应用程序的输入、处理和输出分开,将应用程序分为模型、视图和控制器三部分,它们分别担负不同的任务。
(1) 模型(Model)。模型包含了应用程序的核心,它封装了应用程序的数据结构和事物逻辑,集中体现了应用程序的状态。换言之,模型就是业务流程、状态的处理以及业务规则的制定。业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。MVC并没有提供模型的设计方法,而只告诉你应该组织管理这些模型,以便于模型的重构和提高重用性。
在MVC的三个部件中,模型拥有最多的处理任务。被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性,提高了系统设计的可重用性。
(2) 视图(View)。视图通过显示的形式把信息转达给用户,是应用程序的外在表现。在视图中其实没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。它可以访问模型的数据,却不了解模型的情况,同时也不了解控制器的情况。当模型发生改变时,视图会得到通知,它可以访问模型的数据,但不能改变这些数据。一个模型可以有多个视图,而一个视图理论上也可以与不同的模型关联起来。
(3) 控制器(Controller)。
控制器通过时间触发的方式接受用户的输入。控制器的作用很明显,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制层不做任何的数据处理,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求的视图返回给用户。
1.2 Struts框架
Struts按照MVC模式思想,提供了一种创建Web应用程序的框架,其中对应用程序的用户界面表示和数据的后端逻辑处理代码进行了抽象,整合了Servlets和JSP在Web应用开发上的优势以建立灵活,扩展性强,复用程度高的应用系统。Struts是实现MVC模式的一个优秀的应用框架[2]。Struts的体系结构[3]实现了MVC设计模式的概念,它将这些概念映射到Web应用程序的组件和概念中。
模型由实现业务逻辑的JavaBeans或EJB组件构成。在模型层,业务逻辑被封装在独立的组件里,并向Action类提供接口,这样有助于重用。
视图由HTML、StrutsActionForm、JSP页面、自定义标记和Java资源包构成。JSP页面结合Struts的标签库构成了视图组件的主体。
控制器由ActionServlet和Action来实现。ActionServlet是Struts框架的集中控制点,接收所有客户请求进行最初的处理,并将其影射到适当的Action进行处理。Action类是Struts框架的核心,也是客户请求和业务操作的桥梁。它根据客户的请求调用相应的业务逻辑,并根据执行的结果决定程序的去处,以ActionForward对象的形式返回给ActionServlet。
1.3 Spring和Hibernate框架
Spring是一个开源框架,它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成原来只能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。
Hibernate是一个开放源代码的对象关系映射框架[4],它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,还可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
2、系统设计与实现
本系统采用JAVA语言进行服务器端应用程序的开发,使用Tomcat作为应用服务器,数据库系统选用SQL Server 2000。整个系统采用基于MVC模式的Struts框架进行设计,下面说明系统的设计实现。
2.1 系统开发背景
Internet和Web技术的快速发展为教育信息化提供了新的技术支持。实验室管理系统是教育信息化的主要内容之一,它的应用促进了教育体制的改革和创新,同时也反应了一个学校管理现代化的水平。设计和实现一个基于Web的实验室管理系统,对实验室和仪器设备的使用进行有效合理地调整搭配,对实验室及仪器设备的使用频率和使用效果及时准确地评估,是高校实验室管理工作中首要需求[5]。
2.2 系统性能需求分析
为满足高职院校的发展对实验室管理的要求,科学高效的使用实验室资源。经研究分析,本系统应该满足以下性能需求:
(1) 高可靠性。系统除了具有完善的功能之外,应具有很好的可靠性。作为实验室管理的主要工具,系统中出现的故障将会直接影响实验室正常的工作日程,所以系统必须具有高可靠性,从而保证实验室管理的稳定性。
(2) 良好的开放性。考虑到本系统以后有可能与高校其他管理系统进行集成,本系统必须具有良好的开放性,既要满足现有集成需求,又要为将来系统的扩展预留接口。
(3) 易用性。系统应面向用户进行设计。系统的使用者一般都对计算机了解得少,因此系统的操作应该尽量简单、方便,用户界面友好,使用户能够易学易用。
(4) 高安全性。系统应提供安全可靠的数据存储服务,拒绝未被授权的人员访问、篡改数据信息的企图,而只向被授权的用户提供与其权限一致的数据服务。
2.3 系统功能设计
本系统针对高校的实际情况,在校园网的基础上,采用Struts技术,结合Spring的IOC技术和Hibernate的ORM工具,基于SQL Server2000数据库开发设计了一个基于MVC模式的实验室管理系统,实现了实验室人员管理、实验室设备管理、实验课程安排、实验室开放等一系列功能系统,系统各个模块功能如下:
(1) 系统注册与登录功能。实验室管理系统遵循一般的管理信息系统的特点,可以进行用户的注册、登录、权限划分与控制等功能。
(2) 实验室日常管理。实验室日常管理工作是本系统最重要的功能之一。实验室介绍模块提供对实验室的介绍,方便用户对实验室进行了解。用户权限管理模块可以对用户的权限进行管理,系统管理员和实验室工作人员都可以进行用户权限设置。用户管理模块根据用户的权限对用户个人信息管理、用户查询管理、查看系统信息等功能进行设置。实验室管理员可以通过实验课程管理模块对实验室的课程进行增加、删除、修改、查询等操作,并可以进行课程计划的制定等功能。实验室公告发布模块方便实验室用户灵活掌握实验室的的规划和通知,进行公告管理。
(3) 实验室设备管理。库存管理模块可以对实验室设备入库,并设备的详细信息记录,对设备进行增加、修改等操作。耗材管理模块对实验室耗材进行记录,并对耗材的使用情况进行统计和分析,耗材的增删改查等操作。维护管理模块记录实验室设备的状态,设备的维修情况。
(4) 实验室信息查询。课程查询模块对实验室管理员排好的课程进行查询,查询结果主要包括上课得时间、地点、授课教师等信息。设备查询模块可以查询实验室某一设备的具体信息及设备分配使用情况。用户查询模块可以查询用户的详细信息。综合查询模块可以进行多条件查询,综合了以上各种查询,只对实验室管理员公开。
(5) 实验室统计分析。设备使用分析模块对实验室设备的使用率,损耗情况进行统计分析。实验室使用分析模块对实验室的开出率、利用率等情况进行统计分析。耗材情况使用分析模块对耗材的使用情况、购买支持情况进行统计分析。
2.4数据库设计
本系统采用的是SQL Server2000服务器版作为底层关系数据库。该数据库用户界面优秀,功能全面、强大,日志功能完善、稳定、安全,是现代电子商务应用中比较好的数据库产品。本系统主要有如下数据表:
用户基本信息表eustomer_info:记录用户的基本信息;用户登陆信息表signon_info:记录用户的登陆信息;管理员表manager_info:记录管理员的详细信息;实验室类型表labtyp_info:记录实验室的类型信息;实验室表lab_info:记录实验室的详细信息;设备表shb_info:记录实验室设备的详细信息;实验室使用情况表labuse_info:记录实验室使用情况详细信息。
3、结束语
本文根据高校实验室管理的特点和Web应用系统的发展,提出了利用MVC模式进行实验室管理系统开发的方案,并采用Struts框架实现了这个系统,系统由于采用MVC设计模式具有良好的可扩展性和可维护性。随着信息技术的快速发展和国家对高校教学质量要求的不断提高,基于网络平台的实验室管理系统的研究将会朝着更好的层次发展。
参考文献:
[1] 赖英旭,刘增辉. MVC模式在B/S系统开发中的应用研究[J]. 微计算机信息,2006.22
[2] 张伟,王康,徐文艳. 基于J2EE通用呼叫中心运营平台的研究与应用. 计算机工程, 2006.32
[3] 黄海,朱跃龙. J2EE设计模式与框架技术的应用研究. 计算机与现代化,2006.5
[4] 刘春花,王忠民. 基于MVC模式的远程评议系统的设计与实现. 计算机工程与设计,2008.13
[5] 彭浩. 基于MVC架构的学生管理系统的设计与实现. 软件导刊,2008.6
[6] 李冬云,赵亦松. 基于MVC模式的会议管理系统的设计. 北京联合大学学报, 2008.4
MVC模式下程序设计 篇3
1 需求分析
本系统的设计目标是在考虑到小型餐饮企业的资金问题的状况下, 为小型餐饮企业设计一个能减少小型企业经营成本, 提升的运营效率、提高的管理效益的适合小型餐饮管理软件的餐饮管理系统。在如今信息化应用广泛的餐饮市场中, 一个具有统计分析功能可以帮助经营者分析自己企业的经营状况并及时决策的餐饮管理系统对于一个餐饮企业不可或缺的。餐饮管理系统主要是对餐饮业务运行过程中人流、物流、资金流、信息流的管理, 采用先进技术来开发系统能更有效地降低成本, 提高经营效率。因此经过一些需求的调查总结归纳了以下几点:
1) 预订管理, 根据客人的要求为客人提供预订餐台的服务。
2) 顾客开单, 根据现有的可供预订的桌子为客人开单并纪录顾客人数, 并且输入顾客所点的菜品, 在顾客消费完后。
3) 顾客买单, 为已消费完的客人提供结账服务会员有折扣优惠。
4) 打印清单, 在顾客消费结束, 打印消费清单以便查询。
5) 会员管理, 根据餐饮企业的的服务政策, 对会员信息进行管理以及提供相应的服务。
6) 商品管理, 对菜品, 酒水的增删改。
7) 报表查询, 查询餐饮企业在某个时间段内的营业额, 销售情况等, 并打印报表。
1.1 系统功能模块设计
根据小型餐饮管理系统的特点, 可以将系统分为顾客开单、快餐外卖、商品管理、财务管理、会员管理、系统设置6个部分。其中, 顾客开单模块最重要。
1.2 系统功能性需求
本系统主要功能是实现小型餐厅日常流程的进化, 分别有后台管理员、超级管理员两个角色, 根据不同角色制定不同的功能。本系统有6个子系统管理模块, 分别为:顾客开单、快餐外卖、商品管理、财务管理、会员管理、系统设置。
顾客开单模块:该模块主要是对顾客所点的菜单进行输入, 以及用完餐后的买单付款。
主要功能包括:
1) 选择顾客用餐时所在的餐台
2) 输入顾客点单时所选择的菜品
3) 对顾客所在的餐台的消费情况进行买单
4) 查询该餐台的使用记录以及一些消费信息5)
5) 打印消费账单
快餐外卖模块:该模块主要是输入外卖需送达的地址, 送餐时间, 顾客联系电话, 相关备注, 以及所需要的菜品。
商品管理模块:该模块主要是对餐饮系统中的菜品以及菜品的价格进行增删改。
财务管理模块:该模块的主要功能是对餐厅的一些消费情况进行查询, 其中包括消费记录的查询, 销售额统计报表, 冷菜销售额统计, 热菜销售额统计, 热门菜肴统计等。
会员管理模块:该模块的主要功能是对餐厅会员进行管理, 其中包括对餐厅会员的增删改, 对会员信息进行修改。
系统设置模块:本系统是使用于小型餐饮企业的餐饮管理系统, 所以系统设置这一项是非常精简的, 目前系统设置的功能只有对系统操作人员的增加, 删除, 权限的更改。
2 总体设计
本系统主要采用调用系统服务类接口来实现相应功能。系统主要采用五层体系, 分别为用户表现层、公共服务层、模型层、数据访问层、基础数据层。桌面应用界面采用.NET平台开发的winform程序。
2.1 小型餐饮管理系统的模块框图
小型餐饮管理系统的模块框图。如图2所示:
2.2 系统数据库设计
2.2.1 数据库分析
由于本系统是为中小型企业开发的程序, 需要充分考虑到成本及用户需求等问题, 而My SQL是目前最为流行的开发源代码的数据库, My SQL执行效率高, 运行稳定, 数据库操作方便, 界面友好, 深受广大用户和开发人员的欢迎, 满足了中小企业的需求, 也满足了本系统的要求。
2.2.1 数据库概要设计
根据以上各节对系统所做的需求分析和系统设计, 规划出系统中使用的数据库实体分别为餐桌信息实体、会员信息实体、管理员信息实体、消费记录信息实体、菜单信息实体, 菜品销售记录实体等等, 下面将介绍菜品信息和会员信息实体的E-R图。
3.实现关键技术
在实现过程中, 采用MVC开发模式, 建立了模型库、数据操作类、业务逻辑类以及表示层。
3.1 点餐的实现
顾客开单模块主要包括选择餐桌名, 输单, 加菜, 买单等功能, 是餐饮管理系统的最主要的一个功能。管理员登录成功后, 选择空闲餐台名, 是会员的选择会员名称, 然后选择客人选择的菜品, 最后点保存。
实现过程的关键代码:
3.2 外卖功能
外卖主要是对一些外送信息 (如:送餐地址, 送餐时间, 联系电话, 备注等相关信息) 的记录以及输单, 结账买单。具体的执行代码:
4 结束语
论文研究开发的小型餐饮管理系统包含了顾客开单、快餐外卖、商品管理、财务管理、会员管理、系统设置6个子系统。系统为了确保小型餐饮管理系统的各个环节的质量和小型餐饮管理系统的安全运行, 提高了办公质量及效率, 为小型餐饮企业提供了其相关信息。
参考文献
[1]林菲, 孙勇.ASP.NET案例教程[M].北京:清华大学出版社/北京交通大学出版社, 2011.
MVC设计模式 篇4
所谓设计模式,本文的理解是:程序由前人积累下来的一些可行解决方法,而程序的设计模式决定了程序各方面最终的性能。本文将FLASH特有的属性和ASPX相结合,创建了双MVC的设计模式。无论在安全性,还是在程序易用性、可维护性、可拓展性上都有了很大提高。
MVC英文即Model-Vi ew-Cont r ol l er,即把一个应用的输入、处理、输出流程按照Model、Vi ew、Cont r ol l er的方式进行分离,这样一个应用被分成三个层——模型层、视图层、控制层。
模型(Model):就是业务流程/状态的处理以及业务规则的制定。业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计可以说是MVC最主要的核心。业务模型还有一个很重要的模型那就是数据模型。数据模型主要指实体对象的数据保存(持续化)。
视图(Vi ew)代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML、XML和Appl et。
控制(Cont r ol l er)可以理解为从用户接收请求,将模型与视图匹配在一起,共同完成用户的请求。划分控制层的作用也很明显,它清楚地告诉你,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制层并不做任何的数据处理,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求的视图返回给用户。因此,一个模型可能对应多个视图,一个视图可能对应多个模型。
MVC是一种目前广泛流行的软件设计模式,也逐渐在PHP和Col d Fus i on开发者中得到运用,并有增长趋势。随着网络应用的快速增加,实践已经证明MVC模式对于Web应用的开发无疑是一种非常先进的设计思想,无论选择哪种语言,无论应用多复杂,它都能为理解分析应用模型提供最基本的分析方法,为构造产品提供清晰的设计框架,为软件工程提供规范的依据。
1 MVC设计模式的优点
MVC要求对应用分层,这虽然要花费额外的工作,但使得产品的结构清晰,产品的应用通过模型也可以得到更好地体现。其优点可以表述如下:
(1)MVC具有多个视图对应一个模型的能力。在目前用户的需求快速变化下,可能有多种方式访问应用的要求。按MVC设计模式,一个订单模型以及多个视图即可解决问题。这样就减少了代码的复制,也减少了代码的维护量,即一旦模型发生改变,也易于维护。
(2)由于模型返回的数据不带任何显示格式,因而这些模型也可直接应用于接口的使用。
(3)由于一个应用被分离为三层,因此有时改变其中的一层就能实现应用的改变。一个应用的业务流程或者业务规则的改变只需改动MVC的模型层。
(4)控制层的概念也很有效,由于它把不同的模型和不同的视图组合在一起完成不同的请求,因此,控制层可以说是包含了用户请求权限的概念。
(5)有利于软件工程化管理。由于不同的层各司其职,每一层不同的应用具有某些相同的特征,有利于通过工程化、工具化产生管理程序代码。
2 利用FLASH特性搭建双MVC设计模式
传统B/S架构下的应用程序,客户端、WEB服务器、数据库服务器是一种经典的MVC模式。如图二所示:
FLASH应用程序本身则可以看成是另外一个完整的MVC模式,在界面上的MOVI E CLI P和组件是视图;ACTI ONSCRI PT中的程序逻辑对键盘和鼠标的反应是控制器,连接外部数据的对象(如XML对象或Load Var s对象)或主件(如XMLConnect or或Web Ser vi ce Connect or)是模型。
值得注意的是:FLASH应用程序要决定哪些部分属于视图和模型时比较明显,控制器的定位则比较模糊。有时,应用程序甚至不需要控制器;在JAVA或FLASH的大部分情况中,视图和控制器往往会合并为一个对象,视图类以组合关系包含控制器类。如何将应用程序分为模型、控制器和视图这三个部分,每个人的做法都是不同的,没有绝对答案。
参考文献
[1]张亚飞,何锋镝.精通Flash MX结构化设计和开发[M].北京:科学出版社,2003.
[2]刘海疆,毛潮钢.Flash MX制作完整实例[M].北京:海洋出版社,2003.
MVC设计模式研究 篇5
1 MVC的结构
MVC设计模式将一个应用程序分为三个部分:模型(Model),视图(View),控制器(Controller)。
模型(Model)用来表示数据和业务逻辑,对应的组件是JavaBean。在MVC设计模式的三个组成部分中,模型主要用于数据处理。模型返回的数据与数据格式无关,也就是说与数据展示没有关系。模型提供的数据能被多个视图所使用,这样就提高了数据处理部分代码的重用性。
视图(View)是用户看到并与之交互的界面,对应的组件是JSP或HTML文件。视图提供可交互的客户界面,向客户显示模型数据。在视图中没有真正的数据处理发生,视图只是将模型里返回的数据作为一种输出数据进行展示并允许用户操作。
控制器(Controller)用来接受用户的请求,调用对应的模型去处理数据,根据模型处理的结果选择不同视图去展示数据并完成与用户的交互。在JSP中,对应的组件通常使用Servlet。
2 MVC工作原理
MVC设计模式的工作原理是客户端的所有请求都发送给控制器Servlet,Servlet接受请求,调用对应的模型处理数据,根据模型处理结果调用不同视图响应;同时Servlet还根据JSP的需求生成相应的Java Bean对象并传送给JSP,JSP通过直接调用方法或者use Bean的自定义标签,得到Java Bean中的数据。Servlet扮演了一个控制器的角色,负责生成JSP页面所要用到的Java Bean对象,并且控制流程的处理,根据不同的请求来决定转发到哪个JSP页面。
3 MVC实现思路
MVC设计模式具体实现是Java Bean作为模型层,Servlet作为控制层,JSP作为视图层。JSP专门用于表现数据而无须进行其他操作,使得JSP页面没有或只含有很少的Java代码。使得页面清晰,提高了可读性,便于维护。
每层作用如下:
Java Bean作为Model层,负责存储与应用程序相关的数据,实现各个具体应用的业务逻辑功能。
JSP作为View层,用于用户界面的显示。它主要通过信息共享,从Java Bean中取出数据,插入的HTML页面中。
Servlet作为Controller层,接收并处理客户端请求,通过Java Bean访问数据库或其他资源,提供View层中要用到的数据,根据处理结果决定转向哪个JSP视图进行交互。
这种设计模式通过JSP页面、Servlet、Java Bean的合作来实现交互处理,很好地实现了表示层、逻辑层和数据层的分离。
4 MVC框架的简单实现
5 MVC设计模式优缺点
MVC设计模式的思想是把应用系统中的各个部件分离,减少部件间的耦合度,这样软件的开发分工就很明确,可以把数据库开发,程序业务逻辑开发,页面开发分开,每一层都具有相同的特征,方便以后的代码维护。但是,分层也提高了对开发人员的要求,产生较多的文件,增加文件管理的难度。
摘要:MVC设计模式的思想是把软件系统中的各个模块进行分离,减少各层次之间的联系,使得层次之间更加清晰,提高了可读性,便于维护。
关键词:MVC,设计模式,控制器,模型,视图
参考文献
[1]李晓东.项目驱动教学法在计算机程序设计语言课中的探索[J].软件,2015(4):107-109.
[2]李晓东.ORM对象持久化技术研究[J].软件导刊,2015(5):52-53.
[3]高昂.JDBC数据库访问技术探究[J].信息与电脑:理论版,2015(13):93-94.
[4]李晓东.DAO设计模式研究[J].软件导刊,2014(7):-37.
[5]李立.浅析Java异常处理机制[J].电脑知识与技术,2012(27):6483-6484.
[6]魏惠茹.Hibernate对象持久化技术的研究[J].电脑知识与技术,2011(19):4733-4734.
[7]魏惠茹.泛型程序设计的研究[J].电脑知识与技术,2009(23):6435-6436.
[8]李霞.MVC设计模式的原理与实现[D].长春:吉林大学,2004.
[9]刘亮.基于MVC的通用型模式的设计与实现[J].中国科学技术大学学报,2010(6):635-639.
MVC设计模式的分析与应用 篇6
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用户单击Web页面中的提交按钮来发送HTML表单时, 控制器接收请求并调用相应的模型组件去处理请求, 然后调用相应的视图来显示模型返回的数据。
控制 (Controller) 可以理解为从用户接收请求, 将模型与视图匹配在一起, 共同完成用户的请求。或者简单的理解, 就是程序的处理流程由它来控制。
模型、视图与控制器的分离, 使得一个模型可以具有多个显示视图。如果用户通过某个视图的控制器改变了模型的数据, 所有其它依赖于这些数据的视图都应反映到这些变化。因此, 无论何时发生了何种数据变化, 控制器都会将变化通知所有的视图, 导致显示的更新。这实际上是一种模型的变化-传播机制。模型、视图、控制器三者之间的关系和各自的主要功能。
2 MVC设计模式的实现
Java平台企业版和其他的各种框架不一样, J2EE为模型对象定义了一个规范。
在J2EE应用程序中, 视图可能由Java Server Page承担。生成视图的代码则可能是一个servlet的一部分, 特别是在客户端服务端交互的时候。J2EE应用中, 控制器可能是一个servlet, 现在一般用Struts实现。模型则是由一个实体Bean来实现。
3 MVC结构
3.1 视图
视图是模型的展现, 它提供用户数据的交互。
在J2EE下, 视图的实现很简单。可以像开发HTML界面一样直接在集成开发环境下通过编写JSP页面来完成页面开发本。一个页面由多个子视图组成;子视图可以是最简单JSP页面。
视图部分大致处理流程如下:首先, 定义了页面的布局;页面配置文件定义视图标签的具体内容;然后, 由编写代码.这一部分主要定义了WEB页面基类Page Base;页面布局策略类Page Layout, 完成页面布局, 用于加载用户部件到页面;用户部件基类User Control Base即用户部件框架, 用于动态加载检验部件, 以及实现用户部件的个性化。为了实现WEB应用的灵活性, 视图部分也用到了许多配置文件例如:置文件有模板配置、页面配置、路径配置、验证配置等。
3.2 控制器
控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击Web页面中的超链接和发送HTML表单时, 控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求, 然后用确定用哪个视图来显示模型处理返回的数据。
在struts中, 基本的控制器组件是Action Servlet类中的实例servelt, 实际使用的servlet在配置文件中由一组映射 (由Action Mapping类进行描述) 进行定义。对于业务逻辑的操作则主要由Action、Action Mapping、Action Forward这几个组件协调完成的, 其中Action扮演了真正的业务逻辑的实现者, Action Mapping与Action Forward则指定了不同业务逻辑或流程的运行方向。strutsconfig.xml文件配置控制器。现在我们总结M VC的处理过程, 首先控制器接收用户的请求, 并决定应该调用哪个模型来进行处理, 然后模型用业务逻辑来处理用户的请求并返回数据, 最后控制器用相应的视图格式化模型返回的数据, 并通过表示层呈现给用户。
现在我们总结MVC的处理过程, 首先控制器接收用户的请求, 并决定应该调用哪个模型来进行处理, 然后模型用业务逻辑来处理用户的请求并返回数据, 最后控制器用相应的视图格式化模型返回的数据, 并通过表示层呈现给用户。
3.3 模型
模型表示企业数据和业务规则。在MVC的3个部件中, 模型拥有最多的处理任务。例如:它可能用象EJBs和Cold Fusion Components这样的构件对象来处理数据库。被模型返回的数据是中立的, 就是说模型与数据格式无关, 这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用, 所以减少了代码的重复性。
业务逻辑层在体系架构中的位置很关键, 它处于数据访问层与表示层中间, 起到了数据交换中承上启下的作用。由于层是一种弱耦合结构, 层与层之间的依赖是向下的, 底层对于上层而言是“无知”的, 改变上层的设计对于其调用的底层而言没有任何影响。如果在分层设计时, 遵循了面向接口设计的思想, 那么这种向下的依赖也应该是一种弱依赖关系。因而在不改变接口定义的前提下, 理想的分层式架构, 应该是一个支持可抽取、可替换的“抽屉”式架构。正因为如此, 业务逻辑层的设计对于一个支持可扩展的架构尤为关键, 因为它扮演了两个不同的角色。对于数据访问层而言, 它是调用者;对于表示层而言, 它却是被调用者。依赖与被依赖的关系都纠结在业务逻辑层上, 如何实现依赖关系的解耦, 则是除了实现业务逻辑之外留给设计师的任务。
参考文献
[1]孙卫琴.精通STRUTS基于MVC的JavaWeb设计与开发[M].电子工业出版社, 2007, 3.
[2]占东明.基于J2EE的MVC设计模式的分析与思考[J].科技广场, 2008, 3.
MVC模式下程序设计 篇7
传统的Web平台使用ASP以及PHP等语言开发设计的Web应用,开发过程当中数据操作脚本同页面脚本之间是混编成一块的,所以无法体现业务模型的整体问题,这就导致设计实现的过程当中重用性以及灵活性显著下降,难以符合不断变更的用户提出的要求。MVC设计模式的使用在应用程序的设计实现当中通过分层设计,要做额外设计工作,产品设计的结构非常清晰,并且产品功能可以借助于模型得到更加理想的实现。系统在MVC设计模式实现的过程当中使用Struts框架,是个基于J2EE平台的框架,采用Servlet以及JSP实现,可以满足Web应用设计开发的要求,同时使得设计开发的过程更加快速简便。
1 MVC 设计模式概述
MVC设计模式出现于上世纪九十年代的人工智能语言当中,主要目的是解决Web应用类似的问题。MVC的M即是mode1,指的是数据模型,V则是View,指的是用户界面,C则是Controller,指的是控制器。MVC使用的作用在于实现M以及V的分离,这样就使得一个程序能够通过不同形式展现出来。C的作用则是保证M以及V保持同步,M一旦出现变化,V就要进行更新,处理步骤如下:首先是控制器接收请求,然后决定调用哪一个模型加以处理,进而模型使用业务逻辑处理请求之后返回结果,控制器则使用视图格式化的模型来返回结果,借助于表示层反馈给用户。
MVC模型有以下几个方面的优点。第一,MVC模式较为理想地解决软件设计开发的过程中如何将软件不同模块间尽可能地减少复杂耦合的关系,包括系统的显示逻辑以及业务逻辑间存在的矛盾,也就是用户界面多变但是业务逻辑保持不变,从而尽量改善系统维护性以及扩展性。第二,各个模型以及视图都通过控制器来连接加以调用。控制器的枢纽作用确保其能够根据不同用户的不同要求而选择合适的模型加以处理,同时选择相应的视图把处理结果反馈给用户,从而在很大程度上改善系统灵活性。第三,一个模型能够拥有不同视图,不同视图能够共享同一个模型。因此多个视图可以提供不同的数据显示方式,从而以满足用户不同的需求,并且变化传播机制能够确保相关视图以及模型的同步。
2 Suts 架构概述
Struts是Apache Jakarta的一个组成成分,项目开发人员希望通过这方面的研究,改善标签库、Servtet还有面向对象方面的技术水平,是基于MVC模式的具体实现的过程。Struts是由相互协作的一组类、Struts标记以及Servlet共同组成的。
Struts同Turbine以及Tomcat等项目类似,属于开源软件,这就使得开发设计人员可以更加深入地理解内部设计实现的原理。使用MVC的设计模式可以将页面的显示部分同业务逻辑部分实现分离,从而确保程序的结构更加清晰,从而利于开发设计人员进行维护,并且也改善了系统的重用性。此外,Struts有着非常丰富的标签能够加以设计使用,通过灵活使用其标记库,能够显著改善设计开发的效率。同时页面导航作为今后Web开发设计的一个重要的发展趋势,通过Struts架构能够使得系统脉络更为清晰,并且借助于配置文件能够将全部系统的各个部分加以联系,对于系统的后期维护有着非常大的便利。特别是不同的开发设计人员接手这一项目的时候,这一优势能够更加明显地体现出来。Struts架构的核心组件有以下几个部分。
第一,Action Servlet。这一组件的主要作用是当作Struts框架的控制器,同时在Struts当中能够将这一组件当作Web应用的调度者,并且调度依据是Action Mapping的对象具体提供,基本的作用是获取用户的请求,然后将用户请求封装并完成数据验证工作,在验证结束之后则把用户的数据Action Form反馈给用户Action当中完成业务逻辑的处理,最后则根据处理的结果来返回对象,这个对象是在Struts-config.xml当中定义的JSP页面。
第二,Action Form。Web应用当中每一个表单都要创建相应的Action Form Bean,从而持续Web应用的会话状态,不过Action Form能够对应多个不同的表单,因此有着比较理想的重用性。不过这一表单要求出现的不同字段都定义属性,从而作为视图以及模型之间交互信息的纽带,主要作用就在于存储用户在表单当中所输入的那些数据,在验证数据之后,由控制器再传输给Action方法并完成相关的业务操作。
第三,Action。Action是实现程序业务操作的处理类,可以说是Struts的一个关键组件,主要作用是接收控制器传输的请求,同时根据业务逻辑的数据以及处理结果来指明应用流向。Action属于控制Web应用的流程,而并非用来控制应用当中的业务逻辑。一般情况下需要将业务逻辑放置在EJB当中实现,从而能够为Web提供最为理想的重用性以及灵活性。
第四,标记库。视窗组件使用Struts的标记库主要有四种标记。Bean标记:主要用来在JSP当中实现对于bean的管理。逻辑标记:主要用来在JSP当中实现流程控制。HTML标记:主要用于HTML标记的生成,并且在表单当中显示数据,同时借助于会话ID来实现URL编程。模板标记:主要使用动态模板来构造普通页面。
3 基于 MVC 设计模式 Struts 架构的设计实现
在Struts框架设计实现Web应用前,首先需要配置JSP服务器,从而让服务器在接受用户请求的时候,懂得将指定后缀的那些请求转到相应的控制中心加以处理,这部分配置信息通常情况下都在服务器启动的过程中用Web.xml文件载入,并且能够在Web.xml当中定义不同的Contro1loer,也就是为每个应用都定义一个,Web.xml的文件配置包括以下部分:
第一,控制器(Contro1loer)。控制器是框架当中的主要控制程序,在客户端以及服务器出现沟通的时候,都是通过控制器来实现控制的。控制器通过配置文件里面关于配置的信息进一步决定HTTP的请求转发到那里,Action在接收转发请求之后,来完成业务逻辑方面的处理工作。
第二,模型(Model)。模型是在控制用户请求的整体过程当中,处理用户请求并且保存结果的部分,在全部的过程当中,通常是使用Java Bean将这部分信息存储起来,之后在不同的对象间进一步传递。
第三,Struts-config.xml文件。该文件可以说是框架的中心。Web.xml文件接受请求之后发送到相应的位置,后续工作则由该文件进行管理以及控制。这是因为系统只通过这样一个配置文件保持系统模块化,从而提高系统维护的便利性。通过使用这一配置文件描述请求的控制过程以及相互之间的关系,而非将代码当中的对象关系加以固定。在系统当中出现变动的情况下,只需修改这一配置文件,而无需反复编译设计并发布系统程序。该文件主要的内容包括以下几个方面。首先是控制器。控制器借助于Struts-config.xml配置信息来确定出现请求的时候需要调用哪一个具体的对象来进行处理,并且从执行效率方面加以考虑,这部分信息在系统的启动过程中载入系统内存的。其次是视图对象。一般情况下视图对象都是JSP页面。Struts框架并未真正实现JSP规范要求。在Struts当中借助于标签定义的JSP页面可以把用户表单所输入的数据存储到Java Bean当中,并且借助于Action类来完成调用,之后则校验用户输入数据,要是发现非法数据,则通过Struts通用机制把错误信息反馈显示给用户。再次是Struts框架提供不同的标签库,这些标签库自身有着各自的用途,并且这些标签库是能够离开Struts框架而使用的,并且有个重要的作用就是借助于系统资源文件这一方式来实现Web应用的多语言特点。全部的控制流程都可以在struts-config.xml这个文件当中实现管理,这样的集中管理方面能够树立改变应用的流程,无论Servlet或者是JSP页面当中都不需重新编写并获取从数据库调用的数据代码。
在基于MVC模式Struts架构的具体设计实现方面,首先需要将模型控制器还有视图存放于3个包中,模型、视图以及控制器代码都需要存放到SRC文件夹当中,并且这部分代码在之后发布的过程中并不需要上传服务器,而只需要把已经编译完成的文件上传到服务器发布。Web-inf当中则存放系统配置的文件,在系统设计开发的过程当中,可以使用多个配置文件,让每个设计人员使用单独配置文件,并且无论怎样修改都避免给其余的设计人员带来影响,这类配置文件在命名的过程当中都是用struts-config的标记。由于使用Struts的框架,因此无论是系统视图、逻辑模型还是控制器,都能够很方便进行管理,并且在团队开发的过程当中,容易整合不同的开发设计人员设计的不同模块,只需要将相应模块复制到一个包中,进而修改Web.xml这一文件,同时加入Struts-config文件配置,就能够整合开发模块。除需要分类存放各自的文件外,系统还可以调用Struts软件包,并在各个包中进一步开发应用的具体代码。
MVC模式下程序设计 篇8
关键词:水土保持监测系统,信息系统,设计,开发,MVC模式
近年来,信息技术日渐广泛地应用在水土保持工作中。在长江流域地区,长江委水土保持局已先后建立了长江流域水土保持监测信息系统、长江上游滑坡泥石流预警系统等多个应用系统,并基本完成了丹江库区、三峡库区、嘉陵江、金沙江下游的水土保持动态监测,其本底数据库涵盖等40万km2的监测数据,已初步构建水土保持信息采集、处理、交流的平台[1]。
尽管长江流域的水土保持信息化建设取得了一定的进展,但是水土流失监测依然存在数据缺乏统一标准、资源分散等问题。尤其是在小流域尺度下,现有数字化数据的组织和存储缺乏标准化,且存储方式比较分散,导致各业务间无法实现对数据的共享[2]。因此,建立一套小流域通用的水土保持监测系统,对动态监测显得十分必要。通过该系统实现数据资料的标准化存储,达到数据的快速检索,实现基础设施管理工具的高效率运营[3]。同时,在统一的标准体系中组织、积累已数字化的数据资源,有助于提高数据的准确性和可靠性,减少数据冗余和维护工作量,可使有多种类型数据需求的辅助决策应用具备了数据基础,也为实现快捷的数据共享创造了便利。
该研究以遂宁水土保持监测站为例,开发结合WEPP模型的水土保持动态监测数据库管理系统,既可以录入和基本管理基层水保监测站的监测数据,又可以模拟和预测侵蚀过程,以及可视化结果的实现,以期为三峡库区水土保持规划、长江中上游土壤侵蚀监测以及相关政策措施的制订提供理论依据。
1 动态监测数据库系统开发平台
1.1 系统技术框架
考虑到可移植性及业务扩展性,遂宁水土保持监测站数据库管理系统以VC++6.0为开发平台,采用MVC开发模式(Model-View-Controller),寻找开发平台和数据库管理系统的接口。将WEPP模型嵌入原系统,使原有的DBMS系统和新整合系统中的WEPP模型共用数据库。也可以在WEPP模型的坡面文件里读取到输入的径流小区相关数据;新系统能够识别和读取输入数据库的数据,可以在WEPP模型同时读取在数据录入模块里输入的土壤数据。WEPP模型的各类文件有其特殊的格式,若想最终实现自动调用,输入的相关数据和相对应的程序必须与之相匹配[4],从而使数据录入模块的相关数据匹配识别的目的。
MVC开发是一种目前广泛流行的软件设计模式,是“模型—视图—控制器”的缩写,其目的是提高软件的可修复性、可维护性、灵活性、可扩展性以及封装性,同时减少代码的重复率、数据表达、数据描述和应用操作的耦合度。
1.2 数据库系统
该数据库系统处理数据库量大,并且在准确性、运行效率、安全性方面表现出色,采用目前比较流行的Microsof SQL Server作为核心的数据平台,以保证数据的安全可靠和系统高度的可扩展性。同时依靠其开放的开发环境,可以利用很多种第三方应用程序、工具、网关和管理实用程序,为后续的开发以及预想中的web扩展留下了空间[5]。
1.3 模板技术
遂宁水土保持监测站数据库管理系统采用了MFC(Microsoft Foundation Classes)模板技术。MFC是一个VC++编程语言里的一个编程模板。在这个模板内,包含了大量Windows句柄和内建控件组件的封装类,允许任何人使用简单而强大的模板语言来调用定义在VC++代码中的对象,大大减少应用程序开发人员的工作量[6]。
2 系统分析与设计
2.1 系统需求分析
目前,水土保持监测站数据库管理系统以小流域基本概况信息管理为主。根据基层水土保持监测站观测数据特点,要求该系统具有4个方面的功能:一是方便、快捷地进行数据录入,使数据的修改、删除或添加等程序的操作较容易;二是支持多条件查询,可根据时间分段导入、导出数据,查找迅速;三是具有数据备份及数据还原功能,确保了系统数据的安全运行与操作;四是支持WEPP模型的强大分析预测功能[6]。
2.2 系统开发方案
在系统中,基础设施层提供系统服务,系统管理硬件设施配以相应的系统软件对行管理,向资源管理层和应用层、表现层提供数据管理所必须的基础设施[7]。
数据资源层可实现对系统数据的调度和存储,通过数据转换、加工、提取和过滤等过程,向应用层提供数据。
应用支撑层包括基础支撑层、应用支撑服务和领域构件3个部分。其中基础支撑层作为系统的基础支撑平台,包括应用系统开发、部署、运行和管理的环境及其相应规范。应用支撑服务考虑到政务应用中事务管理的复杂性,提供相关技术予以实现,是应用支撑层为系统应用提供的一组共性和关键的服务。应用支撑服务支持组件化的开发部署,将公用功能如配置管理、日志管理、工作流等功能以公用组件或公共服务的形式集成到平台中,为减少系统间的耦合度提供了相关API接口。应用支撑层具备灵活的开发部署方式,各个组件之间相互独立,同时又基于统一的技术规范体系,便于集成或分布式部署;领域构件提供了重用软件设计和代码的一种方式[5]。
应用层集中运行业务逻辑,包括相互联系、功能互补的各业务系统,如综合查询及发布系统利用其他系统提供的数据进行查询。
表现层负责与用户交互,接受用户请求,并展示出业务应用层的处理结果。在该系统中可依托已有的用户平台或在以后的功能扩展中增加门户平台,在此基础上借助平台提供的身份认证等功能,为水土保持管理信息系统提供服务[8]。
为保证系统符合标准、安全可靠,标准规范体系、安全保障体系及系统运行维护管理贯穿于系统各个层次,该系统安全保障体系部分目前只依托水保站内网。
2.3 系统功能结构设计
项目建设的子系统包括数据库管理系统、分析系统、预测系统,数据库管理子系统包括监测数据管理、基本功能管理、基本信息管理3类功能模块。系统的各功能设置均充分对应相应的需求分析。分析系统和预测系统以整合WEPP功能模块的方式进行。系统功能结构如图1。
3 结语
目前,水土保持信息化工作普遍存在缺乏统一的标准化体系、信息资源分类体系繁杂、数据之间组织较离散、缺乏联系等问题。在遂宁水土保持监测站建立的信息管理与分析系统,涵盖了多方面、多层次、多领域的信息,如基本概况、水土保持各类项目及预防监督管理等,并在信息标准化上作了相应的尝试,提高了信息统计、分析等工作的效率与可靠性。作为目标为服务全国水土保持监测网络的数据库系统,在今后的工作中还需要进一步改进和完善。WEPP模型的参数模块还有很大的扩展空间。管理模块的相关功能可以进行web扩展,并与全国水土保持监测网络中心站相连,适时调整观测类别,使系统更能适应国家级网络的功能接口,统一规范,使资源共享程度更高[1]。同时,可考虑加载GeoWEPP模型,在对小流域的模拟,以地理信息系统为平台,对小流域的集水区进行模拟。
参考文献
[1]谢碧云,台伟.长江流域水土保持管理信息系统开发研究[J].人民长江,2009,40(4):49-52.
[2]汤立群.流域产沙模型研究[J].水科学进展,1996,7(1):47-53.
[3]王玲玲,姚文艺.我国流域土壤侵蚀预报模型研究动态评述[J].人民黄河,2003,25(9):28-29.
[4]孔垂柳.VC++中MFC框架技术探索[J].吉林建筑工程学院学报,2009,26(4):82-84.
[5]杨德生,陈伟豪,吕能辉,等.基于3S技术的深圳市水土保持管理信息系统研究[J].水土保持学报,2003,17(2):118-122.
[6]严风硕.基于Delphi的DBMS与WEPP模型融合应用研究[D].重庆:西南大学,2010.
[7]王伟,程永清,石砚秀.基于MapX的渭河流域水环境信息系统的设计[J].科学技术与工程,2007,7(15):3832-3837.
【MVC模式下程序设计】推荐阅读:
MVC设计模式研究07-05
MVC模式05-14
MVC架构模式10-01
重构的MVC模式研究06-19
程序导向模式10-10
土地征收的程序模式06-23
护理程序健康教育模式05-15
“翻转课堂”教学模式的课堂操作程序07-09