【VC++开源代码栏目提醒】:文章导读:在新的一年中,各位网友都进入紧张的学习或是工作阶段。
网学会员整理了VC++开源代码-MVC模式的应用架构系统的研究与实现 - 硕士论文的相关内容供大家参考,祝大家在新的一年里工作和学习顺利!
华东师范大学 硕士学位论文MVC模式的应用架构系统的研究与实现 级别:硕士 专业:软件工程 指导教师:王世卿 20071001 摘要 在软件丌发过程中,设计模式扮演了极其重要的作用。
MVC是目前应用系统丌=发中被广为采用的一种设计模式。
面对大量用户界面,业务逻辑复杂的大型应用程序,MVC架构的应用将会使软件在健壮性、
代码重用和系统结构方面上一个新台阶。
MVC架构把应用强制分为模型、视图和控制器三层,使得系统结构清晰,有利于系统的维护和扩展。
Struts框架作为MVC设计模式的一种实现,它提供了大量的JSP标签库,可以进行各种插件开发,简化了视图层的开发。
Hibernate的应甩,。
。
可以避免手工编写访问数据持久层的方法,简化了业务模型的开发。
Struts框架与Hibernate框架的有效整合,让Struts负责降低系统总架构的耦合性,而让Hibernate负责降低业务模型部分的开发难度,消除了单独使用这些框架开发系统的不足。
本文首先分析了J2EE的多层应用模型、MVC设计模式的特征和MVC架构的基本实现方法,然后对Struts的工作流程和Hibernate的体系结构进行了详细分析研究,并在此基础上,应用集成Struts和Hibernate的MVC架构,探讨了某中等职业学校
毕业生就业信息
管理系统的设计开发过程,旨在为构建同类应用系统提供参考与借鉴。
采用集成的MVC应用架构开发应用系统,无论是在整体架构上还是在局部的复杂业务模型中都有了更低的耦合性,系统的灵活性与可维护性也得到了提高,降低业务模型部分的开发难度,增强了系统的可移植性,提高了系统性能。
【关键词】MVC模式;架构;Struts:Hibernate【论文类型】应用基础 Abst ract ln the。
development of software system,design pattem takes very important role.At present。
MVC pattem is one of widely applied pattern in the development of interface and complicatedapplication software system.In face ofmore and more user of MVC architecture will show itslogic business application program。
the applicationimportant impact on software robustness,code reusing and system structure.And anew level will be reach in software with the application ofMVC architecture. MVC architecture divided the application into three layers compulsively:ModelView and Controller,which not only improved system structure definition,but also the implement ofimproved the performance of code maintenance and extension.AsMVC design pattern,Struts framework supply much JSP tag libraries and can be usedto develop many kinds of Plug—in,which simplify the development of view layer.With the application of Hibernate.the development of business model was simplifiedand avid manual program visit data persistence layer.With the effective combine ofStruts framework and Hibernate framework.Struts responsible for reducing systemarchitecture’S coupling,and Hibernate responsible for reducing the develop difficultyof business model,it eliminates the disadvantage of individual configure.In this paper,we firstly analysis J2EE multi—layer mode,MVC design pattern’S characteristic andMVC structure execute method.Secondly.we studied in detail the work flow of Strutsand the system structure of Hibemate.In the end,with the help of integration of Strutsand Hibernate MVC structure,we investigated the design and development processabout graduate occupation information system in a technical secondary college.Thepurpose is taken it as a reference for the construction ofsimilar application system. Adopting integrated MVC framework,system will provide lower coupling both inthe whole structure and local complicated business mode.Furthermore,system’Sflexibility and maintenance also be improved,the develop difficulty of business modeWas reduced,the transplantable of system was enhanced,all above improved thesystem performance. 【Key Words〕MVC pattern;Architecture;Struts;Hibernate 〔Type ofThesis〕Application Basis ¨ 学位论文独创性声明 本人所呈交的学位论文是我在导师的指导下进行的研究工作及取得的研究成果。
据我所知,除文中已经注明引用的内容外,本论文不包含其他个人已经 、发表或撰写过的研究成果。
对本文的研究做出重要贡献的个人和集体,均已在文中作了明确说明并表示谢意。
作者签名 学位论文使用授权声明 本人完全了解华东师范大学有关保留、使用学位论文的规定,学校有权保留学位论文并向国家主管部门或其指定机构送变论文的电子版和纸质版。
有权将学位论文用于非赢利目的的少量复制并允许论文进入学校图书馆被查阅。
有权将学位论文的内容编入有关数据库进行检索。
有权将学位论文的标题和摘要汇编出版。
保密的学位论文在解密后适用本舰定。
学位……:嘲嗾 铆魏况节咔 删::净牵皿工 日期:墨!Z.£7.,2 f MVC模式的应用架构系统的研究与实现 第1章绪论1.1技术背景与研究意义 随着信息化进程的不断深入,企业应用平台都转向B/S模式的三层结构。
现代的企业信息系统业务逻辑不统一、安全性要求高、数据量大,要求应用系统平台具有足够的灵活性来适应现代企业同常业务的需求。
能够满足这种要求的目前较为流行的技术方案就是使用Web Service服务的应用技术架构“’,它有两种技术路线一是Microsoft的.net技术路线,另一种就是Sun公司开发的J2EE(Java2 Platform Enterprise Edition)技术路线。
它们提供了满足这些需要的用于开发企业应用系统的软件平台。
Sun公司的J2EE定义了开发和运行企业级Web应用的标准,它可以用于丌发大型的、多层次的以及分布式的企业级Web应用“1。
J2EE简化了构建企业级应用的复杂度,使用J2EE构建的企业应用系统不仅有轻便、易维护和易升级的优点,而且能够集成原有的业务系统和数据”1。
由于J2EE的显著特点,众多企业选择基于J2EE来构建信息化平台。
选择了J2EE技术平台,能简化企业解决方案的开发、部署,具有管理相关复杂问题的多层体系结构,并且为搭建具有可伸缩性、高灵活性、易维护性和易扩展性的企业应用系统平台提供了良好的机制“1。
即使使用最先进的软件平台J2EE,开发企业级应用仍然是一个难题。
要设计良好的体系结构,使之具有良好的可扩展性和易维护性,对应用系统的设计人员来说是一个挑战”’。
尤其是在web Service应用开发方面,经常需要考虑采用什么样的系统框架技术和设计模式才能更有利于模块的设计和编码,以及具有更好的灵活性和更易于日后系统的维护和扩展升级。
MVC(Model.View-Controller)设计模式就是如何在这个系统平台上构建自己的应用系统,针对应用系统的特点,构建自己的应用
系统框架(Framework)设计组件的思想的应用过程如’。
MVC设计模式是一个很好创建软件的途径,它所提倡的一些原则,内容和显示互相分离都比较容易理解。
使用MVC能够处理额外的
工作和开发设计的复杂性,提高软件系统的健壮性,实现
代码重用和结构方面的条理性,同时提高开发灵活性和 MVC模式的应用架构系统的研究与实现复用性啪。
当lji『,MVC已是在分布式应用软件(如Web应用程序)中被广为采用的一种设计模式。
在J2EE环境中基于MVC模式的应用框架层出不穷,如Struts、JSF等,它们都有各自独到之处,可以解决某一类特定的应用问题。
其中Struts框架提供了Controller组件并且整合了其它技术来实现Model和View。
Struts是Apache Jakarta项目组提供的一个
开源项目,项目的创立者希望通过对该项目的研究,改进和提高Java Server Pages(JSPs),Servlet,标签库以及面向对象的技术水准。
它的目的是为了减少在运用MVC设计模型来开发web应用时所花费的时间。
Struts是MVC的一种实现,它继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展。
Struts为复杂应用程序提供一个坚实的基础,它符合MVC范例,并允许开发人员创建随业务需要在管理状态下增长的应用程序。
Struts受到强大的业界支持,具有非常好的应用前景“1。
数据库操作在w曲应用中具有相当重要的地位,可以说,所有的web应用都离不丌数据库“1。
目静,关系数据库占据着市场的主导地位,而面向对象的开发方法是当今的主流。
以Ij{『使用JDBc编程来访问数据库,虽然运行效率高,但是在Java程序
代码中嵌入大量的SQL语句,使得项目难以维护,也不利于面向对象的编程思想的发挥。
如何使利用面向对象的思想操作关系数据库也是当今的w曲应用技术发展的热点之一,对象关系映射(Objeet.Relation Mapping,ORM)技术的出现,很好的解决了这个问题。
在企业级应用开发的环境中,ORM设计是一件非常耗时的工作。
Hibernate是目自矿开发人员普遍推崇的一个ORM
开源框架,它对JDBC进行了轻量级的对象封装,使得Java程序员可以使用面向对象编程思维来操作关系数据库“”。
Hibernate拥有一种功能非常强大的查询语言(HQL。
Hibernate Query Language),这种语言与SQL非常相似,便于开发人员掌握。
更重要的是,HQL完全是面向对象的,
查询的是持久对象,而不是数据库的记录,可以用它来支持多态、继承、关联等关系”“。
Struts是一个非常不错的应用框架。
Struts把Servlet、JSP、自定义标签和信息资源整合到一个统一的框架中,开发人员利用其不需要通过编码实现MVC模式的丌发方式,极大的节省了开发时间,有效的简化了开发过程。
Hibernate的 2 MVC模式的应用架构系统的研究与实现优越性远不止对象关系映射(ORM),它和只采用JDBC的API来编写操作数据库的
代码相比要优秀很多““。
MVC模式是一个复杂的架构模式,其实现也显得非常复杂,但多种应用框架结合在一起,使MVC模式的实现变得相对简单易行。
整合Hibernate的Struts架构方案是一个成熟的MVC架构,这个方案将以Struts为框架,使用Hibernate技术操作数据库来开发Web应用程序。
1.2本文的主要内容 论文将分成六个部分,第一章介绍论题的技术背景与研究意义。
第二章介绍了软件设计模式,并分析了MVC架构的基本实现方法。
第三章分析了J2EE的多层应用模型结构及其核心构建技术,介绍J2EE环境中已有的MVC框架,对Struts,框架的工作流程和组件功能进行了详细的研究分析。
第四章首先分析ORM实现原理,详细介绍了Hibernate的体系结构和核心接口。
第五章以某中等职业学校的
就业信息管理为例,采用基于Struts和Hibemate的改进MVC模式的应用架构,对该系统进行分析设计,并以用户登录为例,详细描述了软件框架配置,模型层、视图层和控制器层的实现过程。
最后,在第六章中总结了改进的MVC模型框架的特点,并指出了系统存在的不足。
MVC模式的应用架构系统的研究与实现 第2章MVO设计模式2.1软件设计模式 在
软件设计方面,随着面向对象技术的出现和广泛应用,一方面软件的可重用性在一定程度上已经有所解决,另一方面对软件可重用性的要求同时也越来越高。
设计面向对象软件比较困难,而设计可重用的面向对象软件就更困难。
设计模式可以有助于更加简单方便地重用成功的设计和体系结构,将已证实的技术表达成设计模式也会使新系统开发者更加容易理解其设计思路;同时设计模式还可以有助于选择有利于系统重用的选择,避免设计损害了系统重用性;最后,通过提供一个显示类和对象作用关系以及它们之间潜在联系的说明规范,设计模式甚至能够提高己有系统的
文档管理和系统维护的有效性1131。
总之,设计模式可以帮助设计者更快更好地完成系统设计。
2.1.1设计模式概念 ChristopherAlexander说过:“每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。
这样,你就能一次又一次地使用该方案而不必做重复劳动。
”尽管Alexander所指的是城市和建筑模式,但他的思想也同样适用于面向对象设计模式,只是在面向对象的解决方案里,我们用对象和接口代替了墙壁和门窗。
两类模式的核心都在于提供了相关问题的解决方案“”。
一般而言,一个模式有四个基本要素11-31 (1)模式名称(patternname)一个助记名,它用一两个词来描述模式的问题、解决方案和效果。
命名一个新的模式增加了我们的设计词汇。
设计模式允许我们在较高的抽象层次上进行设计。
基于一个模式词汇表,我们自己就可以讨论模式并在编写
文档时使用它们。
模式名可以帮助我们思考,便于我们与其他人交流设计思想及设计结果。
找到恰当的模式名也是我们设计模式编目工作的难点之一。
(2)问题(problem)描述了应该在何时使用模式。
它解释了
设计问题和问题存在的酣因后果,它可能描述了特定的设计问题,如怎样用对象表示算法等。
也可能描述了导致不灵活设计的类或对象结构。
有时候,
问题部分会包括使用模式必 4 MVC模式的应Hj架构系统的研究与实现须满足的一系列先决条件。
(3)解决
方案(solution)描述了设计的组成成分,它们之间的相互关系及各自的职责和协作方式。
因为模式就像一个模板,可应用于多种不同场合,所以解决方案并不描述一个特定而具体的设计或实现,而是提供设计问题的抽象描述和怎样用一个具有一般意义的元素组合(类或对象组合)来解决这个问题。
(4)效果(consequences)描述了模式应用的效果及使用模式应权衡的问题。
尽管我们描述设计决策时,并不总提到模式效果,但它们对于评价设计选择和理解使用模式的代价及好处具有重要意义。
软件效果大多关注对时间和空间的衡量,它们也表述了语言和实现问题。
因为复用是面向对象设计的要素之一,所以模式效果包括它对系统的灵活性、扩充性或可移植性的影响,显式地列出这些效果对理解和评价这些模式很有帮助。
出发点的不同会产生对什么是模式和什么不是模式的理解不同。
一个人的模式对另一个人来说可能只是基本构造部件。
一个设计模式命名、抽象和确定了一个普通设计结构的主要方面,这些设计结构能被用来构造可复用的面向对象设计。
设计模式确定了所包含的类和实例,它们的角色、协作方式以及职责分配。
每一个设计模式都集中于一个特定的面向对象设计问题或设计要点,描述了什么时候使用它,在另一些设计约束条件下是否还能使用,以及使用的效果和如何取舍。
2.1.2设计模式的特点 模式的特点:是通过经验获取的,以某种结构化的格式书写下来,避免了遇到相同的问题重头设计,存在于不同的抽象层,在不断完善的,是可重用的人工产物,使设计和最好的练习交互,以被组合起来解决更大的问题“”。
设计模式关注的是特定设计问题及其解决方案。
在每种模式中均描述一个设计问题和一个经过验证的、通用的解决方案,这个解决方案是对反复出现的设计结构进行识别和抽象得到的,它通常由多个类组成。
这些模式可以被重用,有良好的伸缩性,而这些设计模式的优势将在基于J2EE的应用中得到极佳的体现。
使用设计模式可以为软件系统的设计带来很多好处: 1)设计模式为开发者提供了一个很好的设计经验,模式中所描述的解方案是人们从不同角度对一个问题进行研究,然后得出来最通用、最灵活的解决方案, MVC模式的应用架构系统的研究与实现其有效牲是经过大量实践检验的。
2)设计模式为软件重用提供了一条途径。
每个设计模式都可以是软件设计中的可重用元素或单元。
多个模式可以组合起来构成完整的系统,这种基于模式的设计具有更大的灵活性、可扩展性和更好的可重用性。
3)设计模式的基本思想是将
程序中的可变部分与不变部分进行分离,尽量减少对象之『日J的耦合度,从而某一个对象的修改,不会导致其它对象的变动,使得由于修改而带来的影响范围达到最小化。
2.2模型/视图/控制器模式(MVC) 模型——视图——控制器(MVC)模式是Xerox PARC在20世纪80年代为编程语言Smalltalk.80发明的一种软件设计模式,至今已被广泛使用,最近几年被推荐+为Sun公司J2EE(Java 2 Enterprise Edition)平台的设计模式1161。
MVC模式弱化了业务逻辑接口和数据接口之间的耦合,使逻辑与呈现相分离,从而让表现层更为独立和更富于变化,增强了
代码的可维护性与扩展性。
MVC设计模式强制性地把应用程序的输入、处理和输出分开。
其应用架构划分为3个相互协调的核心模块:模型(Model)、视图(View)和控制器 (Controller),它们分别担负不同的任务“”。
图2.1显示了这三个模块各自的功能以及它们之间的相互关系。
·I————————————一 …………+ 方法调用 事件 图2-1 MVC动态协作关系图 6 MVC模式的戍用架构系统的研究与实现 Model:事务逻辑模块,这是整个模型的核心。
它表示的是解决方案空间的 真正的逻辑。
它采用面向对象的方法,将问题领域中的对象抽象为应用程序对象。
在这些抽象的对象中封装了对象属性和这些对象所隐含的逻辑。
View..用户视图模块,视图是模型的表示,提供用户交互界面。
当模型状态 发生变化时,视图应该得到通知,以便更新模型的变化。
Controller:流程控制模块,该部分是用户界面与Model的接口。
一方面它 接受来自视图的请求,修改模型的状态:另一方面,它处理来自于Model的事件 和Model逻辑执行的结果,调用适当的View为用户提供反馈。
从图中可以看到,Model是整个模型的核心,他表示的是解决方案空间的真 正的逻辑。
视图是Model的外在表现,一个Model可以对应一个或者多个视图。
视图具有与外界交互的功能。
同时,Model的更新与修改也将通过控制器来通知 视图,从而保持视图与Model的一致性。
MVC的处理过程:首先控制器接收用 户的请求,并决定主要管理应用系统与外界的接口。
一方面它为外界提供输入手段,并触发应用逻辑运行;另一方面,它又将逻辑运行的结果以某种形式显示给 外界。
控制器是Model与视图的联系纽带,控制器提取通过视图传输进来的外部信息,。
并将其转化成响应来调用对应的Model进行处理,然后Model处理用户 的请求并返回数据,最后控制器调用相应的视图模型返回数据,并通过表示层呈现给用户。
由此可见,在MVC的架构中,应用程序的界面和业务逻辑等应用程序的其他部分是完全分离的。
MVC的主题是把业务逻辑、用户的控制动作和业务的实际状况的展现之间的耦合限制到最小的可能性,从而使设计者能够独立的设计每一部分。
我们即可以为同一个模型和控制器选择不同的界面,也可以对同一个应用程序选择不同的模型及其数据源,还可以通过修改控制器来改变应用程序响应使用者动作的行为。
2.3 MVC架构的基本实现方法 实现MVC的方法不止一种,下面给出一种简单的方法“”。
Model、View、Controller三个模块的关系如图2.2所示。
MVC模式的应用架构系统的研究与实现 图2-2 Model、View、Controller的关系2.3.1 ModeI的实现 在模型的实现中,关键在于定义一个存储多个数据更新的监听对象向量。
针对这个向量编写如下两个函数,分别实现添加数据业务时的监听对象添加和发生更新时把消息发送给所有的监听对象: ‖注册模型发生修改需通知的对象 public void addChangeListener(View bv)throws Exception{ ‖添加bv到变化监听队列 ctiangeListeners.add(bv); } ‖触发模型变化事件 private void fireModelChangeEvent(Objectf){ ViewV: for(inti=O;i<changeListeners.size0;i++){ try{ ‖将变化通知队列中的每个视图 System.out.println(”Model:fireModelChangeEvent loop”+i); v=(View)changeListeners.get(i); v.handleChange(f); MVC模式的应用架构系统的研究与实现 }catch(Exception e){ System.out.println(e.toStringO); )2.3.2 View的实现 在视图的实现中,关键有三点。
首先是在视图的构造函数中,把视图注册到指定的模型对象中去(model.addChangeListener(view));其次是定义一个存放所关联的控制器对象的向量,同时针对这个向量对象,定义增加动作监听者的
注册方法(public void addUserGestureListener(Controller b));最后,为视图写一个可以根据传入对象的类型来显示不同界面的方法showDisplay(t)ublie voidshowDisplay(Object display))。
通过上述三个要点,视图实现了接收模型的更新通知、发送动作到控制器,并接受控制器对显示界面的控制。
2.3 3 GontroIIer的实现 控制器的实现相比模型和视图的实现要简单很多。
他只需定义一个模型对象和视图对象即可。
Ij{『者以便在函数中进行调用其业务行为,后者以便把控制器的动作注册到视图中,使之成为该视图的动作接收者。
2.4 MVC模式的特点 MVC的目的是增加
代码的重用率,减少数据表达、数据描述和应用操作的耦合度,从而提高软件的可维护性、扩展性和灵活性。
应用MVC进行系统开发具有以下优点: 1)降低系统的耦合度 在MVC模式中,模型、视图、控制器三个层各施其职,所以如果一旦哪一层的需求发生了变化,就只需要更改相应的层中的
代码而不会影响到其它层中的
代码。
2)有利于丌发中的分工 9 MVC模式的应用架构系统的研究与实现 在MVC模式中,由于按层把系统分开,能更好的实现开发中的分工。
例如,网页设计人员可以进行开发视图层中的JSP,对业务熟悉的开发人员可开发业务层,而其它开发人员可开发控制层。
3>+有利于组件的重用 分层后更有利于组件的重用。
如控制层可独立成一个能用的组件,视图层也可做成通用的操作界面。
MVC模式在应用中也存在以下不足: 1)增加了系统结构和实现的复杂性。
对于简单的界面,严格遵循MVC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。
2)视图与控制器问的过于紧密的连接.