第10章 软件重用设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

5.3.1 用于输入和显示的表现风格 6. N-Up(分栏)
N-Up风格的数据窗口对象提供分栏显示数 据的界面风格。它与Tabular风格的数据窗口 对象相似,增加的功能是一行可以显示多条数 据。创建N-Up风格的数据窗口对象时,需要 在“Set Number of Rows per Band”对话框 中指定分栏数。
3. PowerBuilder系统事件
(1) 基于Windows消息的 PowerBuilder为每个基于Windows消息的事件命名 一个事件标识(Event ID)。事件标识将事件与系统消 息连接起来。一个事件标识映射一个或多个Windows消 息。 (2) 与Windows消息无关的 有些系统事件没有事件标识,例如应用对象的Open 事件等。这些事件与PowerBuilder行为相关联,而不是 基于Windows消息的。
10.3 用户事件 10.3.1 理解事件 10.3.2 定义和触发用户事件
10.3.1 理解事件
1. 2. 3. 4. 5. Windows的消息处理机制 事件驱动的PowerBuilder应用程序 PowerBuilder系统事件 触发系统事件 事件和函数的异同
1. Windows的消息处理机制
2. 函数
函数是一种软件重用技术。面向对象程序设计中的函 数具有重载形式,可重用性强,维护性好。 PowerBuilder中有两种函数:全局函数与对象函数。 全局函数,独立对象,在整个应用程序范围可被重用。 对象函数,隶属于一种独立的PowerBuilder对象。可 为对象函数声明可重用权限,权限有3种:public、 protected和private。
102用户对象1021可视用户对象1022类用户对象1023用户对象的设计原则1024动态放置用户对象并传递参数1021可视用户对象标准可视用户对象标准可视用户对象standardvisualuserobject是用户定义的控件它以一种powerbuilder标准控件为基础增加了满足用户需求的特定功能
2. 创建及使用标准用户对象
(1) 创建标准类用户对象 执行File | New菜单,在New对话框的PB Object页上,选择 Standard Class图标建立标准类用户对象。并在Select Standard Class对话框中,指定一种非可视系统对象的数据类型。 (2) 使用标准类用户对象 在需要添加类用户对象的其他对象画板上,执行Insert | Object | UserObject菜单,在Select Object对话框中,选择一 种标准类用户对象,即添加了一个该用户对象的实例变量,在非可 视对象列表视图(Non-Visual Object List)中可见。在非可视对 象列表视图中,选择用户对象,执行其弹出式菜单Script,则可在 指定事件上编写脚本。
10.2.1 可视用户对象
2. 创建及使用标准可视用户对象 标准可视用户对象的创建及使用方法,与 系统控件类似。在用户对象画板(User Object Painter)中定义用户对象,然后把用 户对象放置在窗口中使用。
10.2.1 可视用户对象
3. 创建及使用定制可视用户对象 由于标准可视用户对象针对一种标准控件扩充其功 能,而定制可视用户对象将多个控件组成一个整体进行 操作,两者侧重点不同,所以,创建及使用方法基本相 似,但略有差异。不同之处主要有以下两点: (1) 创建时,选择Custom Visual图标,系统不需要 询问定制可视用户对象的数据类型,直接打开用户对象 画板。 (2) 使用时,对于添加到窗口上的定制可视用户对 象的控件实例,系统命名为uo_1。此时若需要引用uo_1 中的对象名,可以使用点操作符。
2. 事件驱动的PowerBuilder应用程序
在PowerBuilder中,消息的产生、接收、响应的过 程已经封装在对象的事件中。程序员并不需要记住发生 了一个事件,将会产生什么样的Windows消息,但有必 要理解事件产生所对应的操作,需要编写脚本,指定某 事件被触发时应执行的处理。 PowerBuilder应用程序是事件驱动的。一个完整的 应用程序,包含多种对象以及在这些对象的指定事件中 所写的脚本。每条语句都必须写在指定事件中。有时, 为实现一个功能,需要在多个事件上写脚本。
2. 动态放置时向用户对象传递参数
OpenUserObjectWithParm()函数在动态放置用户 对象时,还能向用户对象传递参数。语法如下: 窗口.OpenUserObjectWithParm(用户对象,参数 [, x坐标, y坐标 ] ) 其中,〈参数〉指明向用户对象传递的参数,数据 类型可以是string或long。
10.2 用户对象
10.2.1 10.2.2 10.2.3 10.2.4 可视用户对象 类用户对象 用户对象的设计原则 动态放置用户对象并传递参数
10.2.1 可视用户对象
1. 3种可视用户对象 (1) 标准可视用户对象 标准可视用户对象(Standard Visual User Object)是用户定 义的控件,它以一种PowerBuilder标准控件为基础,增加了满足用户 需求的特定功能。 (2) 定制可视用户对象 定制可视用户对象(Custom Visual User Object)是将多个控 件组合起来的一个整体,共同完成满足用户需求的特定功能。 (3) 外部可视用户对象 外部可视用户对象(External Visual User Object),是基于 外部资源的用户对象,它包含的控件来自PowerBuilder系统之外的动 态连接库DLL,该DLL中已定义了类及其属性、事件和方法。
10.2.1 可视用户对象
4. 创建及使用外部可视用户对象 创建外部可视用户对象时,需要指定所用动 态连接库的路径,并给出其中的类。
10.2.2 类用户对象
1. 两种类用户对象 2. 创建及使用标准类用户对象
1. 两种类用户对象
(1) 标准类用户对象 标准类用户对象(Standard Class User Object) 是用户定义的非可视对象,它以一种非可视的 PowerBuilder系统对象为基础,增加了满足用户需求的 特定功能。 (2) 定制类用户对象 定制类用户对象(Custom Class User Object) 用于封装不需要可视特性的处理过程,通常这些对象并 不继承某个PowerBuilder对象,完全由设计人员通过定 义实例变量、函数、事件来实现。
消息(message)是Windows发出的一个通知,告 诉应用程序某个事件发生了。例如,单击鼠标、窗口尺 寸、按下键盘上的一个键都会使Windows发送一个消息 给应用程序。一个消息中包括窗口句柄、消息常量标识 符、消息创建的时间、消息创建时的鼠标位置等信息。 应用程序接收到一个消息后,把该消息传递给一个 适当的窗口,该窗口响应这个消息,并执行该事件上的 处理程序。
10.2.3 用户对象的设计原则
设计用户对象时,必须遵循类的封装性原则,隐藏内部实现 细节,提供接口使其可与外界进行通信。具体有以下几点: 1. 完善用户对象的功能,使得应用时尽量少写脚本,不在用 户对象之外随意更改用户对象中的成分。 2. 隐藏内部实现细节,设置权限,不提供外部更改的机会。 不需要提供给外部的成分,设置权限为private。 3. 提供接口,使得用户对象可与外界进行正常通信。 4. 增强可重用性。尽量使用代词引用对象,而不直接引用对 象名称。用户对象或其内部控件使用this引用自己,内部控件使用 parent引用其所在的用户对象,这样即使更改了对象名,也不需要 更改脚本中的语句。
《 PowerBuilder实用教程》 PowerBuilder实用教程 实用教程》
叶核亚 王青云
第10章 软件重用设计
10.1 10.2 10.3 10.4 软件的可重用性 用户对象 用户事件 继承
10.1 软件的可重用性
10.1.1 软件重用概念 10.1.2 PowerBuilder的软件重用机制
5. 继承机制
继承(inherit)是从一个已存在的类创建一个新类的机制,新 类拥有被继承类的全部,包括属性、事件和函数以及其中的对象。 被继承的类称为父类或祖先(ancestor)类,通过继承方式产生的 新类称为子类或后代(descendant)类。 继承在祖先类和后代类之间建立起了联系,一方面,后代类继 承了祖先类的特性和函数,使祖先类的优良特性得以代代相传。另 一方面,后代类还可以增加自己的特性和函数,不断扩充功能,或 者重写祖先的函数,让祖先的函数适应新的需求。 PowerBuilder提供了可视化的继承方式,能够从已存在的对象 创建后代对象,可继承的对象类型有:窗口、菜单和用户对象。
为实现可重用性,必须按照面向对象的概念和方 法,将数据和对数据的操作封装成类。类的封装性原 则要求隐藏内部实现细节,提供接口使其可与外界进 行通信。具体方法是设置类中数据和函数的访问权限。 通常有以下3种权限: public、protected、private。
10.1.2 PowerBuilder的软件重用机制
3. 用户对象
PowerBuilder提供用户对象和用户事件作 为程序员扩充系统对象功能及自定义类的工具。 用户对象既可以扩展系统标准控件和非可视对 象的功能,也可以将系统标准控件和非可视对 象组合起来,创建成一个新的功能更强的可重 用的对象。
4. 用户事件
PowerBuilder不仅提供用户对象方式以扩充 系统对象的功能,还提供用户事件方式增加系统 对象或用户对象的以基于 Windows消息。用户事件既可以由Windows消 息触发,也可以由脚本触发。
10.2.4 动态放置用户对象并传递参数 1. 动态放置用户对象 2. 动态放置时向用户对象传递参数
1. 动态放置用户对象
OpenUserObject()函数为窗口添加指定用户对象。 CloseUserObject()函数从窗口中删除指定用户对象。 语法如下: 窗口.OpenUserObject(用户对象 [, x坐标, y坐标 ] ) 窗口.CloseUserobject(用户对象) 其中,〈用户对象〉指定已创建的用户对象,〈x, y〉 是可选项,指定用户对象在窗口上的坐标位置。
PowerBuilder是支持面向对象编程的可视化开发工 具,它定义的多种系统对象类为用户提供了应用程序设 计的基本成分 1. PowerBuilder系统对象类 2. 函数 3. 用户对象 4. 用户事件 5. 继承机制
1. PowerBuilder的系统对象类
PowerBuilder定义了多种系统对象类,每种系统对象都预定 义了属性、事件和函数。按照独立性和可视性,分为PowerBuilder 对象、控件和非可视对象。 (1) PowerBuilder系统对象 PowerBuilder对象是PowerBuilder中独立的对象,在系统树 窗口中可见。例如,窗口、菜单和数据窗口对象等。 (2) 控件和非可视对象 控件(Controls)和非可视对象(Non-Visual Object)不是 独立的PowerBuilder对象,在系统树窗口中不可见,只能放置在窗 口等容器中。控件是可视化的系统对象,能够获得输入焦点。非可 视对象是运行时不可见的系统对象
1. 两种可重用方式
(2) 为重用而进行软件设计 可重用性是当今软件工程研究和应用的重要 内容。软件重用的范围包含多个层次。例如,从 大范围来看,有适用于不同开发工具的可重用的 组件(COM);从小范围来看,在一个开发工 具内部,也有适用于不同类的可重用技术。本章 讨论的软件重用是指后一种概念。
2. 设置重用权限
5.3.2 用于统计的表现风格
1. 统计图 Graph风格的数据窗口对象称为统计图,它以图形方 式显示数据的统计信息。此时,数据不是通过行、列一 个个孤立地显示出来,而是以图形的方式呈现,便于直 观查看。统计图有面积图(Area)、条形图(Bar)、 列形图(Column)、线形图(Line)、饼图(Pie)、散 点图(Scatter)、堆积图(Stacked)等多种类型。
10.1.1 软件重用概念
1. 两种可重用方式 可重用性有两个主要方面:用重用进行软件开 发和为重用而进行软件开发。 (1) 用重用进行软件开发 (2) 为重用而进行软件开发 2. 设置重用权限
1. 两种可重用方式
(1) 用重用进行软件设计 重用是指软件开发中重用现存的部件,或重 用从过去工程或商业系统开发获得的软件库、设 计分析、设计说明、部件代码等结果,把这些重 用部件简单集成、或经过修改后应用到待开发的 应用系统中。
相关文档
最新文档