




已阅读5页,还剩50页未读, 继续免费阅读
(计算机应用技术专业论文)设计模式在构建基于net的多层web应用程序的应用研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
华北电力大学硕士学位论文 摘要 作者根据m i c r o s o f t n e t 所引领的技术发展趋势,提出了结合设计模式来改造传统的 三层应用软件系统。本文结合一个基于n e t 应用实例的构建过程,讨论了如何根据用户需求 来设计b s 结构的多层应用系统,以及各层的设计要点和实现细节。 本文将外观模式和单态模式相结合,解决了业务接口层的实现问题;通过业务实体的选 择,详细介绍了业务实体层的解决方案;在数据访问层,讨论如何解决系统适用于不同数据 库的问题;基于软件复用的思想,在用户界面层提出了p o r t a lf r a m e w o r k 的构想,并介绍 了实现细节。 关键词:n e t 框架,多层架构,设计模式 b a s e do nt h et r e n dw h i c hm i c r o s o f t n e th a sb e i n gb r o u g h to u t ,t h ea u t h o rp u t sf o r w a r dt h e o p i n i o nt h a tu s i n gd e m g np a t t e r n st oc h a n g et h eo r t h o d o xt h r e e t i e ra r c h i t e c t u r e m a k i n gu s eo fa p r a c t i c a le x a m p l e sd e m g np r o c e s s ,t a l k i n ga b o u th o wt od e s i g nm u l t i t i e ra p p l i c a t i o ns y s t e mw i t h b sb a s e do nc u s t o m e rr e q u i r e m e n t s ,a sw e l la st h ed e s i g ne s s e n t i a l sa n dr e a l i z a t i o nd e t a i l so fi t s e a c hl a y er u s i n gf a c a d ea n ds i n g l e t o np a t t e r n st os o l v et h er e a l i z a t i o np r o b l e mo fb u s i n e s sf a c a d el a y e r ; t h r o u g h t h ec h o i c e o f b u s i n e s se n t i t y , t h ea u t h o r i n t r o d u c e s t h es o l u t i o n o f b u s i n e s s e n t i t y l a y e r ;o n d a t a b a s ea c c e s sl a y e r , t h ea u t h o rd i s c u s s e sh o wt os o l v et h a tas y s t e mm u s ta d a p tt od i f f e r e n t d a t a b a s e ;b a s e do ns o f t w a r er e u s e ,t h ea u t h o rg i v e sa ni d e ao fp o r t a lf r a m e w o r ka n dd i s c u s s e si t s r e a l i z a t i o nd e t a i l s w e ix i n y i n g ( c o m p u t e r a p p f i c a t i o nt e c h n o l o g y ) d i r e c t e db yp r o f l i nb i y i n g k e yw o r d s :n e tf r a m e w o r k , m u l t i - t i e r a r c h i t e c t u r e ,d e s i g np a t t e r n 华北电力大学硕士学位论文 摘要 作者根据m i c r o s o f t n e t 所引领的技术发展趋势,提出了结合设计模式来改造传统的 三层应用软件系统。本文结合一个基于n e t 应用实例的构建过程,讨论了如何根据用户需求 来设计b s 结构的多层应用系统,以及各层的设计要点和实现细节。 本文将外观模式和单态模式相结合,解决了业务接口层的实现问题;通过业务实体的选 择,详细介绍了业务实体层的解决方案;在数据访问层,讨论如何解决系统适用于不同数据 库的问题;基于软件复用的思想,在用户界面层提出了p o r t a lf r a m e w o r k 的构想,并介绍 了实现细节。 关键词:n e t 框架,多层架构,设计模式 b a s e do nt h et r e n dw h i c hm i c r o s o f t n e th a sb e i n gb r o u g h to u t ,t h ea u t h o rp u t sf o r w a r dt h e o p i n i o nt h a tu s i n gd e m g np a t t e r n st oc h a n g et h eo r t h o d o xt h r e e t i e ra r c h i t e c t u r e m a k i n gu s eo fa p r a c t i c a le x a m p l e sd e m g np r o c e s s ,t a l k i n ga b o u th o wt od e s i g nm u l t i t i e ra p p l i c a t i o ns y s t e mw i t h b sb a s e do nc u s t o m e rr e q u i r e m e n t s ,a sw e l la st h ed e s i g ne s s e n t i a l sa n dr e a l i z a t i o nd e t a i l so fi t s e a c hl a y er u s i n gf a c a d ea n ds i n g l e t o np a t t e r n st os o l v et h er e a l i z a t i o np r o b l e mo fb u s i n e s sf a c a d el a y e r ; t h r o u g h t h ec h o i c e o f b u s i n e s se n t i t y , t h ea u t h o r i n t r o d u c e s t h es o l u t i o n o f b u s i n e s s e n t i t y l a y e r ;o n d a t a b a s ea c c e s sl a y e r , t h ea u t h o rd i s c u s s e sh o wt os o l v et h a tas y s t e mm u s ta d a p tt od i f f e r e n t d a t a b a s e ;b a s e do ns o f t w a r er e u s e ,t h ea u t h o rg i v e sa ni d e ao fp o r t a lf r a m e w o r ka n dd i s c u s s e si t s r e a l i z a t i o nd e t a i l s w e ix i n y i n g ( c o m p u t e r a p p f i c a t i o nt e c h n o l o g y ) d i r e c t e db yp r o f l i nb i y i n g k e yw o r d s :n e tf r a m e w o r k , m u l t i - t i e r a r c h i t e c t u r e ,d e s i g np a t t e r n 华北电力大学硕士学位论文 y 8 6 8 1 0 1 声明 本人郑重声明:此处所提交的硕士学位论文设计模式在构建基于n e t 的多层w e b 应用 程序的应用研究,是本人在华北电力大学攻读硕士学位期间,在导师指导下进行的研究工 作和取得的研究成果。据本人所知,除了文中特别加以标注和致谢之处外,论文中不包含其 他人已经发表或撰写过的研究成果,也不包含为获得华北电力大学或其他教育机构的学位或 证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确 的说明并表示了谢意。 学位论文作者签名:互越 日期:k 啼g 乡f 主 关于学位论文使用授权的说明 本人完全了解华北电力大学有关保留、使用学位论文的规定,即:学校有权保管、并 向有关部门送交学位论文的原件与复印件;学校可以采用影印、缩印或其它复制手段复制 并保存学位论文;学校可允许学位论文被查阅或借阅;学校可以学术交流为目的,复制赠 迭和交换学位论文;同意学校可以用不同方式在不同媒体上发表、传播学位论文的全部或 韶分内容。 ( 涉密的学位论文在解密后遵守此规定) 作者签名:蔓必 日期:逊6 :兰:! 弓 导师签名:盔壑题。 日期:猃:童:丝 华北电力大学硕士学位论文 1 1 课题背景 第一章引言 在一个典型的三层应用软件系统中,应用系统通常被划分成以下三个层次:数据库层、 应用服务层和用户界面层。如图卜】所示: 图卜l 典型的三层应用软件系统 对于应用系统来说,在这三个层次中,系统的主要功能和业务逻辑在应用服务层进行处 理,对于系统框架来说,主要处理的也是这个层次的架构。 在一个面向对象的系统中,对于应用服务层来说,以下几个方面的问题是必须要处理的: 1 数据的表示方式,也就是实体类的表示方式,以及同数据库的对应关系。 2 数据的存取方式,也就是实体类的持久化问题,通常采用数据库来永久存储数据实 体,这就需要解决同数据库的交互问题。这个部分要完成的功能,就是将数据实体保存到数 据库中,或者从数据库中读取数据实体。同这个部分相关的,就是对数据访问对象的使用。 在n e t 框架中,对a d o ? n e t 又做了一层封装,使其使用更加简便,同时也统一了对a d o n e t 的使用方式。 3 业务逻辑的组织方式。在面向对象的系统中,业务逻辑是通过对象间的消息传递来 实现的。在这个部分,为了保证逻辑处理的正确性和可靠性,还必须支持事务处理的能力。 4 业务服务的提供方式。为了保证系统的灵活性和封装性,系统必须有一个层来封装 这些业务逻辑,向客户端提供服务,同时作为系统各个模块间功能调用的接口,保证系统的 高内聚和低耦合性。这里的客户指的不是操作的用户,而是调用的界面、其他程序等。w e b 层( a s p n e t 页面) 通常只同这个部分交互,而不是直接调用业务逻辑层或者数据实体的功 能。 所以,抽象出一种好的架构出来,能够大大减少程序员的开发时间,提高开发效率,并 且能够屏蔽用户对不同数据库的需求,从而更加符合快速开发的要求,即:“r a p i d a p p l i c a t i o nd e v e l o p m e n t ( r a d ) w h i l ea tt h es a m et i m et r y i n gt op r o d u c eh i g hq u a l i t y c o d e ” 内行的设计者知道:不是解决任何问题都要从头做起。他们更愿意复用以前使用过的解 决方案。当找到一个好的解决方案,他们会一遍又遍地使用。这些经验是他们成为内行的 华北电力人学硕士学位论文 部分原因。因此,你会在许多面向对象的系统中看到类和相互通信的对象( c o n l n u n i c a t i n g o b j e c t ) 的重复模式。这些模式解决待定的设计问题,使面向对象的设计更灵活、优雅,最 终复用性更好。它们帮助设计者将新的设计建立在以往工作的基础上,复用以往成功的设计 方案。一个熟悉这些模式的设计者不需要再去发现它们,而能够立即将它们应用于设计问题 中。 可见,设计模式使人们可以更加简单方便地复用成功的设计和体系结构。将已证实的技 术表述成设计模式也会使新系统开发者更加容易理解其设计思路。设计模式帮助你做出有利 于系统复用的选择,避免设计损害了系统的复用性。通过提供一个显式类和对象作用关系以 及它们之间潜在联系的说明规范,设计模式甚至能够提高已有系统的文档管理和系统维护的 有效性。简而言之,设计模式可以帮助设计者更快更好地完成系统设计。 1 2 国内外研究动态 设计模式是一个新兴的研究领域,同时也是一个热点研究领域。国外从9 0 年代初就有 人开始关注软件代码模式。自从“四人组( g a n go ff o u 0 ”设计模式问世,引起了国外软 件工程界对设计模式的极大关注。此后,设计模式成了软件工程领域中的热门研究课题。目 前,国外软件工程界正把设计模式应用予软件体系结构、设计、编码和软件开发的过程和组 织等,其理论成果主要体现在从1 9 9 4 年丌始的“程序设计模式语言( p a t t e r nl a n g u a g e so f p r o g r a m m i n g p l o p ) ”年会论文集中。国内对于设计模式基本从1 9 9 6 年才开始了解,对设计 模式的研究也就最近几年才开始,设计模式在企业应用领域的研究及运用剐刚起步。 目前对设计模式的研究及其研究成果仍然存在一些问题:己有的设计模式涉及的范围有 限;设计模式大多没有清楚明确的应用指南,比较难以运用,而且也没有任何可以帮助开发 人员检查模式使用是否正确的机制;设计模式中本质、抽象的东西太少等等。 针对以上问题,目前对于设计模式的研究工作主要集中在以下几个方面: 1 新设计模式的发现和发明。每年国际上都举办包括p l o p ,e c o o p 等在内的学术会议 对设计模式进行讨论,据权威统计,目前软件界己经总结出来大约7 0 0 种不同的设计模式, 人们正在各个领域总结设计模式,如通信领域、w e b 开发领域。设计模式与其他面向对象技 术的关系也是当前研究的热点。 2 模式的组织和索引。目前的设计模式还仍然是用文档的形式来记载,面对设计模式 数量的迅速增长,需要一种合适的覆盖所有模式的组织方法,并对其中的模式提供一个索引, 建造一个可以有效的支持高质量软件开发的真正成熟的模式系统。 3 设计模式的使用自动化。目前设计模式使用自动化和设计模式支持工具的研究也是 一个热点。 4 形式化模式。在设计模式的研究过程中,国外己经提出了很多关于设计模式结构的 描述方法。一般分两类:图示化方法,如对象模型技术( b i t ( o b j e c t - o r i e n t e dm o d e l i n g 华北电力大学硕上学位论文 t e c h n i q u e ) 嘲;形式化数学表示法。目前的研究趋势是这两类方法的统一。国内也对模式形 式化做了一定的研究,并且结合了新技术,如:基于x m l 的,混合规范描述模型等埘。 5 设计模式的应用及具体化。虽然设计模式有很多,并且设计模式的提出也是针对所 有领域的,但是并不是所有的模式都可以拿来直接应用的,有的模式可能适合某应用但需要 对它进行改造,用改造的设计模式或经典设计模式来解决具体设计问题,使其更加适合于该 应用,所以设计模式的应用和不断的改造来适应具体设计的问题也是当前研究的热点。 总之,设计模式是一个既新颖又长久的研究方向,随着企业应用的迅速发展和产品化, 在我国对设计模式的研究正方兴未艾,为以后全面的发展做准备。基于设计模式的企业应用 的研究,可以解决企业应用设计开发中现存的许多问题,人们可以更简单方便的复用成功的 设计和体系结构,在模式库建立后,开发人员的设计思路将走上一条全新的基于设计模式的 企业应用开发之路。 1 3 课题主要研究工作 1 3 1 应用项目概述 该课题应用的项目是d c f si n f o r m a t i o ns y s t e mf o rc o u n t ys o c i a lw o r k e r s , 它是l o sa n g e l e sc o u n t y ( 洛杉矶郡) 为儿童服务工作人员c h i l d r e ns e r v i c ew o r k e r s ( c s w s ) 特定的管理信息系统,可以完成模块的定制,以及各个模块颜色、布局、内容的任 意调整,从而满足各种用户的不同需求,管理员完全可以根据用户的要求方便地定制所需模 块的属性;并且此应用系统还需要提供下载数据到p a i m ( 个人数字助理p d a 的- - f 中) 上的 接口,以便c s w s 可以在任何时候、任何地点方便地查看所需的数据和信息。 1 3 2 主要研究内容 本课题的主要研究内容: 1 抽象出一种好的架构,实现面向产品化、实用性的构件库系统,并具开放性、可扩 展性; 2 编制套核心的类库,为应用系统提供服务,使得后面的开发减少很多基础性的工 作; 3 一定程度上解决在开发复杂、多变多层数据库应用程序时,应用程序与数据库耦合 过于紧密所带来的可维护性和可移植性差的问题; 4 通过丽向对象的方法把系统分割成一系列的层次和对象,并使用设计模式解决应用 设计开发中存在的许多问题,实现多层系统结构,从真正意义上实现了表示层与业务逻辑的 分离,使得基于此架构的系统有利于不断扩充、维护。 华北电力大学硕士学位论文 1 3 3 论文的内容组织 本文首先对设计模式与框架的基本理论进行介绍;然后对n e t 框架及其所支持的技术进 行研究:接下来结合应用实例,从系统分析到系统多层架构的设计进行了进一步的说明阐述, 并把设计模式引入系统设计和开发过程,用来解决实际遇到的各种问题。 4 华北电力大学硕士学位论文 2 1 设计模式 2 1 1 什么是设计模式 第二章设计模式与框架 对于模式的研究,起源于建筑设计大师c h r i s t o p h e ra l e x a n d e r ,他这样描述模式:“每 一个模式描述了一个我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样, 你就能一次又一次地使用该方案而不必做重复劳动”。尽管a 1 e x a n d e r 所指的是城市和建 筑模式,但他的思想也同样适用于面向对象设计模式,只是在面向对象的解决方案里,我们 用对象和接口代替了墙壁和门窗。两类模式的核心都在于提供了相关问题的解决方案。 一般而言,一个模式有四个基本要素。 1 模式名称( p a t t e r nn a m e ) :一个助记名,它用一两个词来描述模式的问题、解决方 案和效果。命名一个新的模式增加了我们的设计词汇。设计模式允许我们在较高的抽象层次 上进行设计。基于一个模式词汇表,我们自己以及同事之间就可以讨论模式并在编写文档时 使用它们。模式名可以帮助我们思考,便于我们与其他人交流设计思想及设计结果。找到恰 当的模式名也是我们设计模式编目工作的难点之一。 2 问题( p r o b l e m ) :描述了应该在何时使用模式。它解释了设计问题以及问题存在的 前因后果,它可能描述了特定的设计问题,如怎样用对象表示算法等。也可能描述了导致不 灵活设计的类或对象结构。有时候,问题部分会包括使用模式必须满足的一系列先决条件。 3 解决方案( s o l u t i o n ) :描述了设计的组成成分,它们之间的相互关系及各自的职责 和协作方式。因为模式就像一个模板,可应用于多种不同场合,所以解决方案并不描述一个 特定而具体的设计或实现,而是提供设计问题的抽象描述和怎样用一个具有一般意义的元素 组合( 类或对象组合) 来解决这个问题。 4 效果( c o n s e q u e n c e s ) :描述了模式应用的效果及使用模式应权衡的问题。尽管我们 描述设计决策时,并不总提到模式效果,但它们对于评价设计选择和理解使用模式的代价及 好处具有重要意义。软件效果大多关注对时间和空间的衡量,它们也表述了语言和实现问题。 因为复用是面向对象设计的要素之一,所以模式效果包括它对系统的灵活性、扩充性或可移 植性的影响,显式地列出这些效果对理解和评价这些模式很有帮助。 2 1 2 为什么要用设计模式 作为程序员都知道良好程序的一个基本标准:高聚合、低耦合。面向对象语言比结构化 语言要复杂的多,不良或者没有充分考虑的设计将会导致软件重新设计和开发。然而实际的 5 华北电力大学硕士学位论文 设计过程中,设计人员更多的考虑如何解决业务问题,对于软件内部结构考虑较少;设计模 式则补充了这个缺陷,它主要考虑如何减少对象之间的依赖性,降低耦合程度,使得系统更 易于扩展,提高了对象可复用性。因此,设计人员正确的使用设计模式就可以优化系统内部 的结构。 2 1 3 设计模式的编目 在设计模式可复用面向对象软件的基础”1 一书中介绍了2 3 个设计模式,它们的名 字和意图列举如下: a b s t r a c tf a c t o r y :提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们 具体的类。 a d a p t e r :将一个类的接口转换成客户希望的另外一个接口。a d a p t e r 模式使得原本由于 接口不兼容而不能“一起工作的那些类可以一起工作。 b r i d g e :将抽象部分与它的实现部分分离,使它们都可以独立地变化。 b u i l d e r :将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同 的表示。 c h a i no fr e s p o n s i b i l i t y :为解除请求的发送者和接收者之间的耦合,而使多个对象 都有机会处理这个请求。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对 象处理它。 c o m m a n d :将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化: 对请求排队或记录请求日志,以及支持可取消的操作。 c o m p o s i t e :将对象组合成树形结构以表示“部分一整体”的层次结构。c o m p o s it e 使得 客户对单个对象和复合对象的使用具有一致性。 d e c o r a t o r :动态地给一个对象添加一些额外的职责。就扩展功能而言,d e c o r a t o r 模式 比生成子类方式更为灵活。 f a c a d e :为予系统的一组接口提供一个一致的界面,f a c a d e 模式定义了一个高层接口, 这个接口使得这一子系统更加容易使用。 f a c t o r ym e t h o d :定义一个用于创建对象的接口,让子类决定将哪一个类实例化。f a c t o r y m e t h o d 使一个类的实例化延迟到其子类。 f l y w e i g h t :运用共享技术有效地支持大量细粒度的对象。 i n t e r p r e t e r :给定一个语言,定义它的文法的一种表示,并定义一个解释器,该解释 器使用该表示来解释语言中的句子。 i t e r a t o r :提供一种方法顺序访问一个聚合对象中各个元素,而又不需要暴露该对象的 内部表示。 m e d i a t o r :用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显示地互 华北电力大学硕士学位论文 相引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 m e m e n t o :在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存 这个状态。这样以后就可将该对象恢复到保存的状态。 o b s e r v e r :定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生变化时, 所有依赖于它的对象都得到通知并自动刷新。 p r o t o t y p e :用原型实例指定创建对象的种类,并且通过拷贝这个原型来创建新的对象。 p r o x y :为其他对象提供一个代理以控制对这个对象的访问。 s i n g l e t o n :保证一个类仅有一个实例,并提供一个访问它的全局访问点。 s t a t e :允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它所 属的类。 s t r a t e g y :定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模 式使得算法的变化可独立于使用它的客户。 t e m p l a t em e t h o d :定义一个操作中算法的骨架,而将一些步骤延迟到子类中。t e m p l a t e m e t h o d 使得予类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 v i s i t o r :表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素 的类的6 u 提下定义作用于这些元素的新操作。 2 1 4 设计模式的分类 可以根据两条准则对设计模式进行分类( 表2 1 ) 。第一是目的准则,即模式是用来完成 什么工作的。模式依据其目的可分为创建型( c r e a t i o n a l ) 、结构型( s t r u c t u r a l ) 或行为 型( b e b a v i o r a l ) 三种。创建型模式与对象的创建有关;结构型模式处理类或对象的组合; 行为型模式对类或对象怎样交互及怎样分配职责进行描述。 第二是范围准则,指定模式主要是用于类还是用于对象。类模式处理类和子类之间的关 系,这些关系通过继承建立,是静态的,在编译时便确定下来了。对象模式处理对象问的关 系,这些关系在运行时是可以变化的,更具动态性。从某种意义_ 匕来说,几乎所有模式都使 用继承机制,“类模式”只指那些集中于处理类问关系的模式,而大部分模式都属于对象模 式的范畴。 创建型类模式将对象的部分创建工作延迟到子类,而创建型对象模式则将它延迟到另一 个对象中。结构型类模式使用继承机制来组合类,而结构型对象模式则描述了对象的组装方 式。行为型类模式使用继承描述算法和控制流,而行为型对象模式则描述一组对象怎样协作 完成单个对象所无法完成的任务。 表2 - 1 设计模式分类 华北电力大学硕士学位论文 目的创建型结构型行为型 范言 类f a c t o r ym e t h o da d a p t e r ( 类)i n t e r p r e t e r t e m p l a t em e t h o d a b s t r a c tf a c t o r y a d a p t e r ( 对象) c h a i no fr e s p o n s i b i l i t y b u i l d e r b r i d g e c o m k a n d p r o t o t y p ec o m p o s i t e i t e r a t o r 对象s i n g l e t o n d e c o r a t o r m e d i a t o r f a c a d em e m e n t o f l y w e i g h t o b s e r v e r p r o x ys t a t e s t r a t e g y v i s i t o r 2 2 框架 为了能够更加准确地理解设计模式,我们引入另外一个术语:框架( f r a m e w o r k ) 。框架 这个词汇在当今有了各种各样的应用和含义。框架是一个可复用的、“半成品”的应用程序, 通过对框架的定制可以产生满足客户具体需求的应用程序“1 。框架可以认为是一个适用于某 个领域的软件包。这个软件包提供了相应领域的各个问题的解决方法。 从用户使用的角度,用户通过定制框架形成满足他们具体需求的软件,这个过程是简单 的,复杂的内部结构必须对用户隐藏。从设计复用的角度,框架完整地描述了一个领域内的 设计概念,可以适合该领域内用户不同的需求。从实现复用的角度,可以通过继承或者代理 的方法来使用框架中的抽象类达到实现复用。 可见,采用框架技术进行软件开发的主要特点包括: 领域内的软件结构一致性好; 建立更加开放的系统; 重用代码大大增加,软件生产效率和质量也得到了提高; 软件设计人员要专注于对领域的了解,使需求分析更充分; 存储了经验,可以让那些经验丰富的人员去设计框架和领域构件,而不必限于低层 编程; 允许采用快速原型技术; 有利于在一个项目内多人协同工作; 大粒度的重用使得平均开发费用降低,开发速度加快,开发人员减少,维护费用降 华北电力大学硕上学位论文 低,而参数化框架使得适应性、灵活性增强。 23 设计模式与框架的关系 框架、设计模式这两个概念总容易被混淆,其实它们之间还是有区别的。构件通常是代 码重用,而设计模式是设计重用,框架则介于两者之间,部分代码重用,部分设计重用,有 时分析也可重用。在软件生产中有三种级别的重用:内部重用即在同一应用中能公共使 用的抽象块;代码重用即将通用模块组合成库或工具集,以便在多个应用和领域都能使 用:应用框架的重用,即为专用领域提供通用的或现成的基础结构,以获得最高级别的重用 性。 其实,框架与模式都是来自多个解决相关问题的应用,来自多个应用的实践经验,但软 件框架与设计模式是一组不同的概念,具有不同的含义。它们的不同主要体现在以下几个方 面: 1 设计模式比框架更抽象。设计模式是对在某种环境中反复出现的问题以及解决该问 题的方案的描述。框架能够用代码表示,也能直接执行或复用,而对于设计模式而言只有实 例,即碰到具体问题后才能用代码表示。从这个意义上说,框架是个物理实体,而设计模式 是个逻辑实体。框架可以看成是一个或多个设计模式解决方案的物理实现,而模式则指导如 何实现这些方案。 2 设计模式是比框架更小的体系结构元素。一个典型的框架都包含多个设计模式,而 反之决非如此。 3 框架比设计模式更加特例化。框架总是针对一个特定的应用领域,而设计模式基本 可以被用于任何应用。 4 框架是软件,而设计模式是软件的知识。 华北电力大学硕士学位论文 3 1 n e t 框架 第三章n e t 框架及n e t 框架支持的技术 m i c r o s o f t n e t 框架是生成、部署和运行w e b 服务及应用程序的平台。它提供了1 + 个生 产率高且基于标准的多语言环境,用于将现有投资与下一代应用程序和服务集成,同时提供 了解决i n t e r n e t 规模应用程序的部署和操作难题的灵活性。它由三个主要部分组成: 1 公共语言运行库 公共语言运行库是n e t 框架应用程序的运行引擎。它提供了一系列服务,包括: 代码管理( 装入与执行) 。 应用程序内存隔离。 类型安全检查。 中间语言到机器语言的转换。 对元数据( 增强类型信息) 的访问。 托管对象的内存管理。 强制的代码访问安全性。 异常处理,包括跨语言异常。 托管代码( 指向公共语言运行库服务的代码) 、c o m ( 组件对象模型) 对象以及非托 管代码和数据之间的交互操作。 对象布局的自动化。 为开发人员提供的服务支持( 如配置文件和调试) 。 公共语言运行库负责运行时服务,如语言集成、强制安全、以及内存、进程和线程管理。 除此之外,它还在开发时期承担如生命周期管理、强类型命名、跨语言异常处理以及动态绑 定之类的角色,以减少开发人员将事务逻辑转成可重用组件必须写的代码数量。图3 一l 显示 了公共语言运行库的基本构成。 1 0 华北电力大学硕士学位论文 图3 - 1 公共语言运行库的基本构成 2 统一编程类 该框架为开发人员提供了统一的、面向对象的、分层的和可扩展的类库集( a p i ) 。目前, c + + 开发人员使用m i c r o s o f t 基础类( m f o ,而j a v a 开发人员使用w i n d o w s 基础类( j f o 。 框架统一一了这些完全不同的模型并且为v i s u a lb a s i c 和j s c r i p t 程序员同样提供了对类库 的访问。通过创建跨所有编程语言的公共a p i 集,公共语言运行库使得跨语言继承、错误处 理和调试成为可能。从j s e r i p t 到c + + 的所有编程语言具有对框架的相似访问,开发人员可 以自由选择它们要使用的语言。 3 a s p n e t a s p n e t 建立在n e tf r a m e w o r k 的编程类之上,它提供了一。个w e b 应用程序模型,并 且包含使生成a s pw e b 应用程序变得简单的控件集和结构。下一节将专门介绍a s p n e t 架构。 32a s p n e t 简介 a s p n e t 是包含封装公共i i t m l 用户界面元素( 如文本框和下拉菜单) 的控件集。这些 控件在w e b 服务器卜运行,并以h t m t ,的形式将它们的用户界面推送到浏览器。在服务器上, 这些控件公开一个面向对象的编程模型,为w e b 开发人员提供了面向对象编程的丰富性。 a s p n e t 还提供结构服务( 如会话状态管理和进程回收) ,进一步减少了开发人员必须编写的 代码量并提高了应用程序的可靠性。另外,a s p n e t 使用这些同样的概念使开发人员能够以 服务的形式交付软件。使用y a l lw e bs e r v i c e s 功能,a s p n e t 开发人员可以编写自己的业务 逻辑并使用a s p n e t 结构通过s o a p 交付该服务。 a s p n e t 是开发人员生成企业级w e b 应用程序的开发平台,可必用任何与n e t 兼容的语 言如v b n e t 、j s c r i p t n e t 、c # n e t 创作应用程序,其中包括托管的公共语言运行库环境、 类型安全、继承等等,给予了开发人员极大的自由。从软件编程开发者的角度来说,a s p n e t 是建立在微软新一代n e t 平台架构上,利用公共语言运行时( c o n n o nl a n g u a g er u n t i m e ) 在 服务器后端为用户提供建立强大的企业级w e b 应用服务的编程框架。 a s p n e t 采用了组件化和模块化的技术,并且将w e b 应用的表现层和应用层分离,更加 符合三层模式的概念。而且a s p n e t 将w e b 应用编译成为d l l 文件,而不是a s p 的解释执行, 从而大大加快了w e b 应用的运行速度,优化了w e b 应用的性能。 3 3x m l 信息交换标准 x m l ( e x t e n s i b l em a r k u pl a n g u a g e ) 在n e tf r a m e w o r k 中有着重要的作用。该f r a m e w o r k 不仅允许在应用程序中使用乳,也在配置文件和源代码文档中使用舡。另外,s o a p 、w e b 1 1 华北电力大学硕士学位论文 服务和a d o n e t 也使用) ( m l 。所以,掌握n e t 框架下的x m l 技术自然显得非常重要了。 3 3 ,1x m l 与h t m l 的比较 w o r l dw i d ew e bc o n s o r t i u m ( w 3 c ) 开发了一组标准,给x m l 提供了强大的功能和潜力。 列l 是一种新的w e b 应用语言,它和h t m l 很类似。 x m l 和h t 札不同点在于两者的应用方向。h t m l 是给浏览器显示信息用的,类似数据排 版;x m l 让人可以自创名称,让计算机之间彼此交换数据。儿数据档案是文本档,任何文 本编辑器均可看到档案内容,所以它又比e d i 更容易让人接受。x m l 的目的是为了让计算机 可以彼此交换数据,如果这些数据也想借助浏览器看到其内容,只要搭配x s l ( x s t y l e l a n g u a g e ) 就行。x s l 就像排版样本,只要将数据给它,浏览器就可以显示x i v l l 的信息。 x m l 的名称规则和h t m l 类似,但比h t m i ,严谨,例如在h t m l 语法里,属性值不用引号 浏览器也可以解读,但x m l 就得请求使用引号。 3 32x m l 简介 x m l 主要目的在于说明所要表现的数据结构,如名称所要传达的数据是字符串还是数 字,这些在名称规则中并无说明。因此文档规则可说是针对整份) ( m l 文档的。文档规则可用 物理体系结构或逻辑体系结构来理解。 x m l 文档是由数据组成,每个数据称作e n t i t y 。这些e n t i t y 是有层次结构性的,有父 e n t i t y 、子e n t i t y ,最上层裁称作d o c u m e n te n t i t y ,其他的e n t i t y 都是d o c u m e n te n t i t y 的子e n t i t y 。 一份x m l 文档从物理体系结构来看都是e n t i t y ,但从逻辑上来浇,文档中的数据有的 是宣告或注释或字符串数据等,这些分别用名称符号表达,例如注释是用 表达。 要定义名称所能显示的数据意义就在d t d ( d a t at y p ed e f i n i t i o n ) 中定义。 d t d 的功能是使名称有法可循,如名称要表达的数据类型、哪些名称可以被包含、哪些 名称可以是单一名称等。x l i l 的功自是为了传达数据,所以数据传达及数据接收两方就必须 有共同的数据结构,就好像我们如果要用英语对谈就必须遵循英语的规则,这样双方才能沟 通。 像h t m l 一样,一份h t m l 文档需要浏览器的解读才能看到它所要呈现的模样。解读x m l 分成两个步骤,一是解析瑚l ,二是呈现x m l 。解析x 札的程序,类似浏览器解析 n ,叫 做x 札p a r s e r 。x m lp a r s e r 是依照一些a p i 规则做出来的,当前有两类a p i 可供制作) 叫。 p a r s e r ,类称作d o m ( d o c u m e n to b j e c tm o d e l ) ,另一类称作s a x ( s i m p l ea p if o r ) ( m l ) , 这两类a p i 各有其特色及缺点,使用哪一种应根据x m l 的应用而定。瑚p a r s e :主要负责解 析) 咖。文档的体系结构,要将) 眦如同h t m l 般呈现于浏览器上,就需要x s l ( e x t e n s i b l es t v l e 华北电力大学硕士学位论文 l a n g u a g e ) 的配合。 x m l 是虽新的w e b 应用语言,主要目的在于数据交换,当前己被广泛应用,尤其是在分 布式对象设计的环境中,更可表现它的优点;另外电子商务的应用,也是它的所长。它所带 来的方便,是令人期待的。 3 4w e bs e r v i c e 以前,分布式的应用程序逻辑需要使用分布式的对象模型,通过使用d c o m 、c o r b a 、r m i 之类的基本结构,丌发人员仍可拥有使用本地模型所提供的丰富资源和精确性,并可将服务 置于远程系统中。当已经有中意的中间件平台( r m i 、j i m 、c o r b a 、d c o m 等等) 时,我们 为什么还要为w e b 而烦恼呢? 中间件确实提供了强大的服务实现手段,但是,这些系统有一 个共同的缺陷,那就是它们无法扩展到互联网上:它们要求服务客户端与系统提供的服务本 身之问必须进行紧密耦合,即要求一个同类基本结构。然而这样的系统往往十分脆弱:如果 一端的执行机制发生变化,那么另一端便会崩溃。例如,服务器应用程序的接口发生更改, 那么客户端便会崩溃。为了能扩展到互联网运用,我们需要一种松散偶合的基本结构来解决 这个问题,即w e bs e r v i c e 。 w e bs e r v i c e 是可以使用标准i n t e r n e t 协议进行访问的可编程应用程序逻辑。w e b s e r v i c e 结合了基于组件开发的最佳便利和w e b 。与组件类似,w e bs e r v i c e 表示可以重复 使用的黑厘功能,而无须担心服务实现的方式。与当前组件技术不同,不能通过对象模型特 定的协议( 如分布式组件对象模型( d c 0 m ) 、远程方法调用( r m i ) 或者 n t e r n e ti n t e r o r b 协 议( i i o p ) ) 访问w e bs e r v i c e 。取而代之的是,可以通过普遍的w e b 协议及数据格式访问w e b s e r v i c e ,比如超文本传输协议( i i t t p ) 及可扩展标记语言( x m l ) 。此外,w e bs e r v i c e 接口根 据w e bs e r v i c e 接受和生成的消息进行严格地定义。只要可以创建和使用为w e bs e r v i c e 接 口定义的消息,那么w e bs e r v i c e 的使用者便可以用任何编程语言在任何平台上实现。 3 5j 2 e e 与n e t 体系架构的异同 从n e t 和j 2 e e ( j a v a2p l a t f o r m , e n t e r p r i s ee d i t i o n ) 这两个平台的发展历程来 看,n e t 从一开始就深深打上了w e b 服务技术的烙印,在它的市场推广活动中,无时无刻不 凸显其作为w e b 服务的开发和部署平台的特征,由s e r v e r 、c l i e
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安全法培训内容课件
- 2025年马鞍山雨山区秀山文苑托育园公开招聘劳务派遣制工作人员考前自测高频考点模拟试题带答案详解
- crcc产品认证申请书
- 2025第十三届贵州人才博览会黔南州事业单位引才181人考前自测高频考点模拟试题及答案详解(夺冠)
- 2025-2030工业机器人能效标准制定与节能技术发展报告
- 退休公务员申请书 范文
- 2025年安徽中医药大学第二附属医院博士人才招聘4人考前自测高频考点模拟试题附答案详解(完整版)
- 2025-2030工业机器人产业链布局及市场需求规模预测报告
- 2025-2030工业机器人产业市场现状及未来发展趋势预测分析报告
- 2025-2030工业废水零排放技术路线选择与标杆项目投资收益分析报告
- 血透病人远期并发症
- 有限空间作业气体检测记录表
- 锁骨骨折的护理查房
- 武夷山国家公园文旅景区 LOGOVI设计方案
- 《仓储与配送实务》教案-17物流高技
- 快递转让合同
- JBT 7946.2-2017 铸造铝合金金相 第2部分:铸造铝硅合金过烧
- 新12123交管学法减分考试题库及答案
- DB32T3728-2020工业炉窑大气污染物排放标准
- JG-T 191-2006 城市社区体育设施技术要求
- 重大风险管控方案及措施客运站
评论
0/150
提交评论