毕业设计(论文)跨平台软件安装程序的设计与实现设计.doc

上传人:laozhun 文档编号:2386494 上传时间:2023-02-17 格式:DOC 页数:33 大小:1.32MB
返回 下载 相关 举报
毕业设计(论文)跨平台软件安装程序的设计与实现设计.doc_第1页
第1页 / 共33页
毕业设计(论文)跨平台软件安装程序的设计与实现设计.doc_第2页
第2页 / 共33页
毕业设计(论文)跨平台软件安装程序的设计与实现设计.doc_第3页
第3页 / 共33页
毕业设计(论文)跨平台软件安装程序的设计与实现设计.doc_第4页
第4页 / 共33页
毕业设计(论文)跨平台软件安装程序的设计与实现设计.doc_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《毕业设计(论文)跨平台软件安装程序的设计与实现设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)跨平台软件安装程序的设计与实现设计.doc(33页珍藏版)》请在三一办公上搜索。

1、毕业设计(论文)报告论文题目:跨平台软件安装程序的设计与实现 软件学院 (系) 软件工程 专业学 生 姓 名:校内指导老师:企业指导教师:起 始 时 间: 2005年9月 设 计 地 点: 上海经元软件信息技术有限公司 摘 要软件的安装是软件进入应用领域的第一步,安装程序的好坏决定了用户对软件的第一印象,对软件的整体质量有着重要的影响。目前软件的功能不断增多,应用范围越来越广,相应的复杂性也不断增高,因此安装程序也越加复杂。作者对InstallShield Multiplatform安装程序开发框架和JavaBeans组件技术进行研究,介绍了OS/400和z/OS系统特性,在此基础上成功的为S

2、canMail for Domino开发出跨平台的安装程序,为跨平台安装程序的开发提供了解决方案和具体的开发实例。在ScanMail for Domino安装程序的分析和设计过程中,采用面向对象的分析与设计方法。在Windows,Linux,Solaris,AIX和OS/400操作系统上采用基于Java组件技术的InstallShield Multiplatform来开发安装程序,只需一份代码就可以支持以上平台。而在z/OS操作系统上,基于z/OS提供的Unix系统服务采用Shell脚本来开发安装程序。文中所采用的开发方法为ScanMail for Domino开发的安装程序在各个平台上都达到

3、了产品的需求,并且有很高的质量,尤其是安装程序的模块化使得安装程序的后期维护简单和高效,降低了整个软件的开发和维护成本。关键词:安装程序,面相对象分析与设计,Java组件,集成文件系统,Unix系统服务AbstractInstallation is the first step of use the software. The quality of the Installation program determines the first impression of user for the software. It plays an important role in the softwar

4、e quality. Nowadays, the software has more functions; the range of application has larger and larger and the complexity of software is grows. So the Installation becomes more complexity. The author rearches the InstallShield Multiplatform development framework, the JavaBeans technolog and introduces

5、 the OS/400 and z/OS operate system. Base on this the author successed to develop the multi-platform installation for the ScanMail for Domino. That provides the solution for the muti-platform installation development and gives the example.In the development of installation of ScanMail for Domino, th

6、e author use objects oriented analysis and design. In Windows, Linux, Solaris, AIX and OS/400 platform use the InstallShiled Multiplatform to develop the installation program. In the z/OS platform use Shell script to develop the installation base on the z/OS Unix System Service. The installation pro

7、gram of ScanMail for Domino meets the requirement on all platforms and has high quality. The modularization of the installation program makes the maintenance easier and more efficiency. Reduce the cost of the software development and maintenance.Keywords: Installation, Object Oriented analysis and d

8、esign, JavaBeans, Integration File System, Unix System Service目 录摘 要IIAbstractIII绪 言1第一章 面相对象技术和Java组件技术21.1 面向对象程序设计介绍21.1.1 面相对象的发展21.1.2 面相对象的特性21.1.3 面相对象程序设计的一般方法31.2 Java组件技术41.2.1 组件的概念和分类41.2.2 JavaBean组件特性51.3 JavaBean的事件机制51.3.1 JavaBean事件机制概述51.3.2事件对象61.3.3事件监听者接口61.3.4 指定组件包含的属性信息8第二章安装

9、程序设计82.1 InstallShiled Multiplatform平台介绍82.1.1 Product Bean82.1.2 Wizard Bean92.1.3 Condition和Services92.2 Custom Bean的设计92.2.1 Product Action的设计102.2.2 Wizard Action的设计102.2.3 Wizard Panel的设计112.3项目的编译与运行132.3.1 安装程序的平台和语言设置132.3.2 安装程序的运行13第三章安装程序分析与设计143.1 ScanMail for Domino简介143.2 ScanMail for

10、Domino安装程序的需求分析和设计153.2.1 安装程序需求分析153.2.2安装程序流程设计163.2.3 安装程序中的类设计183.3 ScanMail for Domino卸载程序的需求分析与设计193.3.1 卸载程序需求分析193.3.2 卸载程序流程设计193.3.3 卸载程序中的类结构203.4 ScanMail for Domino数据库的处理逻辑20第四章 ScanMail for Domino安装程序的实现214.1 ScanMail for Domino安装程序模块实现214.1.1 欢迎界面与安装条款界面214.1.2 初始化安装环境214.1.3 选择安装类型和输

11、入产品激活码界面224.1.4 选择需要安装的服务器和用户确认服务器信息234.1.5 ScanMail for Domino安装情况分析和显示244.1.6 数据库相关的配置界面25结 论26致 谢27参考文献28绪 言随着软件规模的扩大,功能越来越复杂,相应的对于软件的安装也提出了更高的要求,软件的安装也呈现出复杂化的趋势。许多大型的应用软件都需要支持各种不同的操作系统和不同的语言,这对于软件的安装也提出了挑战。安装程序是软件进入应用的第一个步骤,是用户对软件的第一印象,它的好坏影响到用户对软件的整体评价。而且在软件的维护阶段有很大一部分的软件错误都和安装程序相关。因此,安装程序的好坏对于

12、软件整体质量有十分重要的影响。目前安装程序的开发方法和工具也在不断增多,但是只靠工具并不能解决所有问题,如何设计和开发优秀的安装程序也成为一个有待解决的研究课题。当前对于软件安装程序的开发方法以及相应的工具有很多,通常的软件开发平台如Visual studio, JBuilder, Delphi等都提供了对程序进行打包的功能,从而产生软件的安装包。但Visual studio所生成的安装程序只能支持Windows平台而且功能有限,不能对用户自定义的安装过程提供支持。而JBuilder所产生的jar包也不能提供良好的可视化安装过程。对于一些功能较少,平台唯一的或是自己开发的免费软件、共享软件等,

13、采用开发工具自带的安装程序制作功能来开发安装程序已经足够,但是对于商业软件,特别是企业级的软件产品而言,往往要支持多种不同的操作系统和多种语言,因此就必须使用专业的安装程序开发工具来进行开发,相应的也要有专门的设计和开发过程。目前应用较多的用来开发安装程序的工具是Install Shield系列的专业安装程序开发工具,针对不同用户的需求Install Shield公司提供了一系列功能不同的安装程序开发工具。对于开发支持跨平台的安装程序来讲,大多数开发人员都选择InstallShield Multiplatform 5.0,它正是基于JavaBeans组件技术的,这款开发工具提供了对多平台和多语

14、言的支持,并且提供了强大的开发类库,使得开发人员可以开发出符合自己需求的安装程序。本文的研究目的就是为企业级的大型软件提出跨平台的安装程序的开发方法,使安装程序的开发变的简易和高效,并且使得程序的后期维护更加容易。本文主要对InstallShield Multiplatform的安装程序设计框架和Java组件技术进行研究,用面向对象的方法来设计软件的安装程序,在此基础上进行ScanMail for Domino的安装程序的设计和开发,并且在z/OS上用Shell脚本来移植安装程序。文章总共分为五章。第一章主要介绍面向对象程序开发的一般方法和Java组件技术,包括JavaBean的特性和事件机制

15、。第二章中详细介绍了如何用InstallShield Multiplatform安装程序开发平台来开发跨平台的软件安装程序,并且给出了Product Bean和Wizard Bean的开发方法和实例。第三章主要进行ScanMail for Domino安装程序的需求分析和设计,在设计的过程中采用面相对象的分析和设计方法。第四章主要是安装程序的实现,介绍了每一个安装模块,即JavaBean的具体实现。第五章介绍安装程序的移植,包括对OS/400和z/OS操作系统的介绍,以及安装程序在这些操作系统上的移植方法和步骤。此课题的研究,为大型软件的多平台安装提出了方便、易用的解决方案,同时对Instal

16、lShield Multiplatform的安装程序设计框架和Java组件技术进行深入分析,并且在ScanMail for Domino的安装程序的设计和开发过程中对各种不同的操作系统的特性进行研究,特别是一些IBM大型机的操作系统,如OS/400和z/OS,这对于实际的跨平台软件安装程序的开发有很大的指导作用。文中采用JavaBeans组件技术实现模块化的安装程序使后期的维护工作会变的容易,而且在设计中许多通用的安装模块可以在以后的开发中进行重用,提高了软件产品的质量也节省了开发时间第一章 面相对象技术和Java组件技术1.1 面向对象程序设计介绍1.1.1 面向对象的发展对于程序设计的方法

17、而言存在着两种主要的方法,一种是结构化程序设计,另一种是面相对象程序设计。面相对象程序设计是软件系统设计与实现的新方法,这种新方法是通过增加软件可扩充性和可重用性,来改善并提高程序员的生产能力,并控制维护软件的复杂性和软件维护的开销1。结构化程序设计在60年代诞生,在70年代到80年代已遍及全球,成为所有软件开发设计领域及每个程序员都采用的程序设计方法。结构化程序设计的设计思路是:自顶向下、逐步求精;其程序结构是按功能划分为若干个基本模块,这些模块形成一个树状结构;各模块之间的关系尽可能简单,在功能上相对独立;每一个模块内部均是有顺序、选择和循环三种基本结构组成;其模块化实现的具体方法是使用子

18、程序。结构化程序设计由于采用了模块分解与功能抽象,自顶向下、分而治之的思想,从而有效地将一个较复杂的程序系统的设计任务分成许多易于控制和处理的子任务,这些子任务都是可独立编程的子程序模块。这些子程序中的每一个都有一个清晰的界面,使用起来非常方便。结构化程序设计方法虽然具有很多的优点,但它仍是一种面向数据和过程的设计方法,它把数据和过程分离为相互独立的实体,程序员在编程时必须时刻考虑所要处理的数据的格式。对于不同的数据格式即使要做同样的处理或相同的数据格式要做不同的处理都需要编写不同的代码。因此可重用性不好。另一方面,当数据和过程相互独立时,总存在着用错误的数据调用正确的程序模块或用正确的数据调

19、用了错误的程序模块的可能性。面相对象程序设计既吸取了结构化程序设计的一切优点,又考虑了现实世界与面相对象解空间的映射关系,它所追求的目标是将现实世界的问题求解尽可能简单化。面相对象程序设计将数据及对数据的操作放在一起,作为一个相互依存、不可分割的整体来处理,它采用数据抽象和信息隐藏技术。它将对象及对对象的操作抽象成一种新的数据类型类,并且考虑不同对象之间的联系和对象类的重用性。面相对象程序设计优于传统的结构化程序设计,其优越性表现在,它有希望解决软件工程的两个主要问题软件复杂性控制和软件生产率的提高,此外它还符合人类的思维习惯,能够自然地表现现实世界的实体和问题。面向对象方法,尤其是它的继承性

20、,是一种代码重用的有效途径。开发者在设计软件时可以利用一些已经被精心设计好并且经过测试的代码,这些可重用的代码被组织和存放在程序设计环境的类库中。由于类库中这些类的存在,使以后的程序设计过程变的简单,程序的复杂性不断降低、正确性不断加强,也越来越易于理解、修改和扩充。1.1.2 面相对象的特性面向对象系统最突出的特性就是封装性、继承性和多态性1。封装性是建立在类的基础上,类描述了一组有相同特性(数据元素)和相同行为(函数)的对象。类实际上就是数据类型,例如,浮点数也有一组特性和行为。区别在于程序员定义类是为了与具体问题相适应,而不是被迫使用已存在的数据类型。这种抽象的数据类型是面向对象程序设计

21、中的一个基本概念。简而言之封装性就体现在类的设计上。封装应具有几个特点:首先,具有一个清楚的边界,对象的所有私有数据、内部程序细节都被固定在这个边界内。其次,具有一个接口,这个接口描述了对象之间的相互作用、请求和相应,它就是消息。最后,对象内部的实现代码受到封装壳的保护,其它对象不能直接修改本对象所拥有的数据和代码。类型不仅仅说明一组对象上的约束,还说明与其他类型之间的关系。两个类型可以有共同的特性和行为,但是,一个类型可能包括比另一个类型更多的特性,也可以处理更多的消息(或对消息进行不同的处理)。继承表示了基本类型和派生类型之间的相似性。一个基本类型具有所有由它派生出来的类型所共有的特性和行

22、为。程序员创建一个基本类型以描述系统中一些对象的思想核心。由这个基本类型派生出其他类型,表达了认识该核心的不同途径。继承关系具有以下几个特性:s 类间具有共享特征(包括数据和程序代码的共享);s 类间具有细微的差别或新增的部分(包括非共享的程序代码和数据);s 类间具有层次结构。继承所具有的作用有两个方面:一方面可以减少冗余代码;另一方面可以通过协调性来减少相互之间的接口和界面。对于面向对象的程序设计语言,多型性是第三种最基本的特征,“多形性”从另一个角度将接口从具体的实施细节中分离出来,亦即实现了“是什么”与“怎样做”两个模块的分离。利用多形性的概念,代码的组织以及可读性均能获得改善。此外,

23、还能创建“易于扩展”的程序。无论在项目的创建过程中,还是在需要加入新特性的时候,它们都可以方便地“成长”。1.1.3 面相对象程序设计的一般方法面相对象的程序设计首先关注在抽象数据类型的建立上,也就是我们通常所说的类的设计。面向对象程序设计方法模拟了人类认识问题中较高、较广层次的过程,即分类过程,并综合了功能抽相与数据抽象,将解决问题看作是一个分类演义的的过程。图1 面向对象分析与设计流程图面向对象程序设计主要分为面相对象分析和面向对象设计两个主要阶段,前两个步骤属于面相对象分析(OOA)的范畴,后两个阶段属于面相对象设计(OOD)的范畴。分析与设计的基本任务就是:分离对象,在微观上研究对象的

24、内部结构,在宏观上研究和描述对象之间的关系,而且这一思想从需求分析到实现阶段都是一致的2。OOAD的工作描述如图1所示。需求分析是面相对象分析的第一步,它是用文本方式如实描述要实现的领域的情况。描述的内容一般包括系统要实现的目标、拟开发的系统的主要特点、领域的核心活动范围;记录可能发生的例外情况(如出错、指标异常等)。从需求文本描述确定语义对象是工作的第二步。语义对象是组成一个系统的基本实体,他有固定的属性和处理数据的方法。实体之间的协调工作构成一个系统的有机整体。实体之间的关系是有“主”有“从”的,即一个实体可能是完成某一动作的“启动者”,另一实体就是“参与者”。“启动者”负责调用另一个实体

25、“服务”,“参与者”是提供服务的实体。应把需求文本作全面的分析理解,分析出问题空间内的全部实体和实体之间的关系。面相对象的设计阶段的主要工作是根据分析阶段得出的各种实体和关系来创建对象模型图和状态图,精确的定义类和类的层次网络图。面相对象设计方法是一种直观方法,通常可归结为下述三步。1. 现对象:所有的对象都有唯一的标识,对象之间是可区分的。具有共同特性的对象组成了类。2. 现对象间的关系:对象之间存在着许多关系,主要要寻找的有两种,即委托关系和继承关系。3. 发现类:类所描述的是具有相似性质的一组对象,这组对象具有相似的行为模式、相似的关系和相似的语义;识别类可用直观的方法,即将现实世界中的

26、类映射到软件解空间的类;我们还可以用抽象的方法识别类,通过观察多个对象或多个类之间的共同特性,抽象出新的类;还有一种发现类的方法为特殊化方法,即通过找出在基类中并未出现的某些附加特性来发现派生类。1.2 Java组件技术1.2.1 组件的概念和分类所谓组件就是可以自行进行内部管理的一个或多个类所组成的群体。除了群体提供的外部操作界面外, 其内部信息和运行方式外部不知道, 使用它的对象只能通过接口操作它3。每个组件包含一组属性、事件和方法, 组合若干组件就可以生成设计者所需要的特定程序。组件往往设计成第三方厂家可以生产和销售的形式,并能集成到其它软件产品中。应用程序开发者可以购买现成的组件, 他

27、们只要利用现有的组件,再加上自己的业务规则,就可以开发出一个应用软件。总之,组件开发技术使软件设计变得更加简单和快捷, 并极大地增强软件的重用能力。目前常用的组件模型可以分为两种:一是微软公司的COM组件模型(包括Automation和ActiveX);一是Sun公司的JavaBean3。ActiveX并不是微软公司推出的最新技术,而是微软公司开发多年的一个产品:首先是“动态数据交换”(DDE),它是Window程序之间传递消息的最原始的协议;接着出台的是“对象链接与嵌入”(OLE),这是对DDE的一种扩展,利用OLE可在应用系统的各程序间创建可视的链接关系;OLE之后是“部件对象模型”(CO

28、M),它几乎成为使用和设计OLE应用程序的工业标准;最后到达ActiveX,它是COM的修改形式,是COM标准的一种升华,它引入了“组件”的概念。所谓ActiveX 部件是指一些可执行的代码,如exe、dll或ocx文件,通过ActiveX技术,程序员能把可重用的软部件组装到应用程序中去。以Visual Basic为例,Visual Basic 中的控件是控件部件(即ocx文件)提供的对象,一个控件部件可以提供多种类型的控件。控件制作者把控件工程编译成一个控件部件后,程序开发者就可以重用这些控件来创建新的应用程序。控件由三部分组成:控件的外观是公有的,用户能看到并能同它进行交互;控件的接口,包

29、括控件的所有属性、方法和事件也是公有的;任何包含该控件实例的程序都会用到:控件的私有部分是它的实现,即控件工作的代码。也就是说,控件的实现效果是可见的,但代码本身不可见。用户通过继承控件私有部分、修改其可见部分就能匹配新的应用需求。JavaBean类似于ActiveX控件,它们都能提供常用功能并可重复使用。JavaBean是基于Java的组件模型。在该模型中,它可以被修改或与其他组件结合生成新的组件或应用程序。JavaBean具有完全的OOP编程风格,可以针对不同业务建立一套可重用的对象库。与其他模型相比,JavaBean组件没有大小和复杂性的限制。JavaBean组件可以是简单的控件(如按钮

30、、菜单),也可以是不可见的应用程序,用来接收事件并完成幕后操作。与COM组件模型相比,虽然JavaBean 只能用Java语言开发,COM可由符合标准对象模型的任何语言(C+、VB等)开发,但相对而言,JavaBean比COM更容易开发;另外,COM组件需要在服务器上注册,如果修改了现有组件,服务器需要重新启动才能使用它,而JavaBean不需要重新注册;同时JavaBean符合结构化对象模型:每个Bean由一个不带参数的构造函数控制,可以使用内省(introspection)来设置其属性。1.2.2 JavaBean组件特性JavaBean组件是可重用的软件组件,使用标准的“方法”命名规则。

31、这使得用户只要看到JavaBean 组件的名字,就可以预测它的功能,并可在应用程序中轻松使用。JavaBean其实就是符合JavaBeans组件模型规范的Java类。JavaBeans组件模型规范是Sun、Borland及其他公司为了建立一个平台无关性的组件模型API而协作开发的,它是编码组件的一个规范4。JavaBeans 将Java 语言本身所具有的“一次编写,到处运行”特性沿用到代码组件Bean,使Bean也具有平台无关性5。Bean是特殊的Java类。它具有一般Java类所没有的特性。按照JavaBeans的规范,一个JavaBean(以下简称Bean)应该具备以下的成分和特性:(1)

32、方法:指在Bean 类中定义的,完成各种特定任务的公共方法,这些方法提供给外部调用。事实上,包括JavaBeans所支持的、以可视化方式重用Bean的那些特性是由定义在Bean中的方法来实现的。虽然不同的可视化应用程序构造工具可以为用户提供各种不同的使用Bean的方式,但是在工具内部都是通过驱动定义在Bean中的方法来完成。(2)属性:Bean属性是Bean类中的成员变量,但它们同时又不是普通的成员变量。首先,Bean属性是与Bean的外观和行为有关的成员变量;其次,Bean 必须提供访问这些属性的公共方法访问者方法, 而且命名这些方法时, 要么必须遵循Bean 的设计模式,要么必须对这些方法

33、进行统一的显式说明。JavaBeans特别规定Bean 外部不能直接访问Bean属性,Bean外部必须使用Bean中定义的访问者方法,来访问这些属性。Bean属性可以属于任意的数据类型。除一般属性外,Bean还可以具有索引属性、关联属性和约束属性。索引属性是以数组形式存在的一组属性;关联属性是当自身的值发生改变时,能够向Bean外部对此感兴趣的部分发送事件通知的属性;约束属性是在改变它的值之前,必须由Bean外部对此感兴趣的部分进行有效性确认的属性。这些属性使得Bean的成员变量具有更强的语义表达能力。(3)事件:在JavaBeans中,事件及其处理机制是十分重要的。因为通过事件处理机制,Be

34、an与Bean之间才可以相互连接起来并进行互操作。JavaBeans直接继承了Java 1.1 API中以事件源/收听者模型为基础的事件处理机制。事件用于传递Bean 状态变化的通知,以及用户与Bean之间的交互信息。Bean 既可以产生事件,也可以收听并处理事件。作为事件源的Bean,既可以产生低层事件,也可以产生语义事件。作为收听者的Bean,向外部提供了响应并处理事件的公共方法。(4)自查(introspection):自查是指软件工具能够从外部分析Bean是如何工作的。Bean之所以能支持自查是因为在JavaBeans中规定:当定义Bean的属性、事件和方法时,要么利用标准的Bean信

35、息类进行显式的定义,要么使用以命名约定为基础的设计模式来定义,两者必居其一。这样无论使用那种形式,或是混合使用两种形式,应用程序构造工具都能分析Bean具有哪些属性、事件和方法,以及使用它们所必需的信息。自查对于重用代码组件来讲是至关重要的,因为只有代码组件支持自查,重用者才能真正地以“黑盒”方式重用它们6。(5)对应用程序构造器的支持:应用程序构造工具可以在Bean类支持自查的基础上,为软件开发人员提供直观的重用Bean的可视化方式,从而使重用代码资源的过程变得简单、灵活和有效。例如,虽然应用程序构造工具在其内部同样只能通过访问者方法来访问Bean的属性,但是它可以在此基础上进一步利用Bea

36、n属性自查和Bean自身的属性编辑器,为应用程序构造工具的用户提供利用可视化的属性列表,编辑Bean属性的手段。(6)客户定制(customization):开发人员可以利用应用程序构造工具,设置Bean 的属性值,以定制Bean 的外观和行为。(7)永久性存储:可以在永久性的存储设备上保存Bean类,以供今后重用。在上述特性中,使得Bean类比一般Java类更容易重用的两个主要特性是自查和支持应用程序构造器。1.3 JavaBean的事件机制1.3.1 JavaBean事件机制概述“事件”机制是JavaBean的重要特性之一,它使原本相互之间毫无关系的一堆构件成为一个能够协同工作的有机整体。

37、一个应用被分解为若干功能相对简单而集中的小模块,当满足一定的条件时,各模块完成各自的职责,并启动下一个模块接替工作下去。构件就是实现特定功能的小模块,而“事件”是控制任务执行顺序的机制,把一个源构件上发生的状态变化情况通知应该获取该消息的其它目标构件,使得各个构件之间的行为有一种因果关系,控制整个应用功能的实现7。事件机制有许多不同的用途,例如,在Windows系统中常要处理的鼠标事件、窗口边界改变事件、键盘事件等。在Java和JavaBean中,则是定义了一个一般的、可扩充的事件机制,这种机制能够:(1)对事件类型和传递模型的定义和扩充提供了一个公共框架,并适合于广泛的应用。(2)完好的集成

38、到Java环境中,充分利用Java的长处。(3)事件能被描述环境捕获和触发。(4)能使其它应用生成工具采取某种技术,在设计时直接控制事件,以及事件源和事件监听者之间的关系。(5)事件机制本身不依赖于复杂的开发工具。(6)能够发现指定的对象类可以监听到的事件。(7)提供一个常规的注册机制,允许动态操作事件源与事件监听者之间的关系。(8)不需要其它的虚拟机和语言即可实现。(9)事件源与监听者之间可进行高效的事件传递。(10)能完成JavaBean事件模型与相关的其他组件体系结构事件模型的中立映射。1.3.2事件对象与事件发生有关的状态信息一般都封装在一个事件对象中,这个对象必须是java.util

39、.EventObject的子类。即使该子类没有增加任何新的属性或方法。习惯上这种事件对象的命名应以Event结尾。例如下面定义了一个鼠标移动的事件类,其中定义了更新和读取当前鼠标位置的方发。/程序省略1.3.3事件监听者接口由于Java的事件模型是建立在方法应用的基础上的,因此需要定义和管理响应事件的方法。响应事件的方法都集中定义在一个事件监听者接口中,该接口继承java.util.EventListener接口,习惯上以“Listener”为后缀标识。事件响应方法的具体实现在需要接受该事件的对象中实现8。以MouseMoved事件为例,要有如下接口。事件机制的总体结构如图2所示。/程序省略主

40、要过程是:事件从事件源到监听者的传递是通过对目标监听者对象的Java方法调用进行的。对每个明确的事件的发生,都相应的定义一个明确的Java方法。这些方法集中在事件监听者接口中。实现了事件监听者接口中一些或全部方法的类就是事件监听者。伴随着事件的发生,事件对象作为参数传递给响应该事件的监听者方法。发出某种特定事件的事件源的标识是:遵从规定的设计格式为事件监听者定义注册方法,并接受对指定事件监听者接口实例的引用。有时,事件监听者不能直接实现事件监听者接口,或者还有其它的额外动作时,就要在一个事件源与其它一个或多个监听者之间插入一个事件适配器类的实例,来建立它们之间的联系。适配器类是Java事件模型

41、中及其重要的一部分。在一些应用场合,事件从事件源到监听者之间的传递要通过适配器类来“转发”。事件适配器的主要作用是作为一个中间机构实现接受事件源消息所需实现的EventListener接口,简化最终事件接受对象的接口。适配器的几个用途有:(1)源和目标对象之间实现事件查询功能;(2)作为过滤器对事件的发送作预处理;(3)合并一个事件监听器对多个事件源的接口;(4)充当事件源和监听处理之间的“话务员”。由于一个特定的事件监听器对象对一个特定的监听接口只能实现一次,为了向多个相同类型的事件源登记,并分别处理从各个事件源发送来的事件,需要在事件源和监听者之间插入适配器,实现对同一个事件类型的各个不同

42、处理方法,并正确的调用。适配器模型的框架如图3所示,从图中可见,适配器类成为了事件监听者,事件源实际是把适图2 JavaBean事件模型的总体结构图图3 适配器模型框架配器类作为监听者注册到监听者队列中,而真正的事件响应者并未在监听者队列中,事件响应者应作的动作由适配器类决定。1.3.4 指定组件包含的属性信息当创建了一个Bean组件后,并且遵循了JavaBeans的设计和命名规范,所有定义的和那些从超类继承来的属性和事件都会自动的显示出来。如果不想使使用JavaBeans的设计和命名规范,或者一个一个现存的类没有使用它们,还是您在设计时不想用户访问Bean的每一个属性,为了处理这些情况,就要

43、创建一个类来实现BeanInfo接口。BeanInfo类主要用来向开发工具传递信息,这包括该组件的那些属性、方法和事件是在设计时可以修改的,那些是隐藏的。使用BeanInfo类可以指定完全的组件信息,也可以指定部分的组件信息。要开发一个BeanInfo类必须实现java.beans.BeanInfo这个接口。主要步骤有:(1)实现getBeanDescriptor()方法,包括实例化BeanDescriptor对象,这个对象用来保存关于组件的一般信息。(2)实现getEventSetDescriptor()方法,包括实例化一个EventSetDescriptor对象数组,数组包含了组件生成的每

44、个事件的信息。(3)实现getPropertyDescriptor()方法,包括实例化一个PropertyDescriptor对象数组,该数组包括组件具有的所有属性的信息。(4)实现getMethodDescriptor()方法,其中实例化一个MethodDescriptor对象数组,该数组包括组件中每个公共方法的信息。如果你要隐藏一些属性或者方法,使其在Bean的用户使用时不可见,只需让上述的这些方法的对象数组中只包含你想倒出的属性、事件或方法,忽略你想隐藏起来的那些属性。还有一种方法就是对想要隐藏的属性或事件调用setHidden()方法。第二章安装程序设计2.1 InstallShile

45、d Multiplatform平台介绍InstallShield MultiPlatform(以下简称为ISMP)是一款可以构建多平台和多语言支持的安装程序的开发工具。它给开发人员提供了一步步的向导来构建一个安装项目,他支持的平台有Windows、Linux、Solaris、MacOSX、AIX、HPUX以及OS/4009。它支持的安装模式有图形化安装,控制台安装和自动安装。自动安装通过在手动安装时产生的记录文件来进行自动安装,用户不需要进行干预。在ISMP中,安装程序主要由多个Product Bean和Wizard Bean组成的。每一个Product Bean 和 Wizard Bean都

46、是一个JavaBean组件。2.1.1 Product Bean在ISMP的集成开发环境中Product Bean都存放在Product面板中。Product Bean中包含的是我们要安装到目标机上的软件产品。Product Bean的主要种类包括:Product、Feature、Nested Feature、Component和Action。一个安装工程的组织结构如图4所示:Product 是安装程序的总体组件代表我们要安装的软件,它包含一个或多个feature组件。feature组件包含一个或多个Component或者Nested Feature。Component包含的是真正要安装的数据

47、文件和安装过程中对目标机的一些设置。从用户可见角度来看,feature是安装程序的最小组成部分feature组件包含一个或多个Component或者Nested Feature。Feature可以理解为产品的一个功能模块。因此Feature组件用来整合此功能的所需的全部资源。Nested Feature组件的功能与Feature组件相同,他允许在已经存在的Feature组件中加入新的Feature组件。可以理解为子功能。Component包含的是真正要安装的数据文件和Action。而Action组件执行具体的安装操作,如拷贝文件或更新文件以及对目标机的设置。图4 Product Bean的组织结构2.1.2 Wizard BeanWizard Bean用来产生安装向导,给用户提供必要的安装信息。在安装程序中他是一个独立的模块。你可以随意添加或删除此组件来得到自己需要的安装向导。所有的Wizard Bean是被ISMP所顺序调用的。你可以方便的在开发工具的Installer和Uninstaller的面板上进行设计。Wizard Bean主要包括:Wizard Action和Wizard Panel。Wizard Action用来执行在目标机上的操作,他不需要与用户交互。Wizard Action的种类有三种:同步的、异步的、和可以

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号