如果不能定义文件管理软件对象之间的关系,那么文件管理软件对象就显得相当无聊,而且不会十分有用。例如,如果一架飞机不能由许多协同工作的对象构成,从而在一个整体上定义飞机的功能,那么就很难对“飞机”对象进行模型化。与飞机机械部分联合工作的一个控制面板可为机师提供反馈信息。与机翼联合工作的引擎则可让飞机真正飞起来。
  定义对象之间的协作关系时,有几种类型的关系可供我们选择。第一种类型是“属于”关系。例如,可定义一个名为“机翼”的类,使其包含所有基本属性和方法。它们适用于任何类型的机翼。但是,新型波音777的机翼可能提供了附加的属性与方法,它们超出了标准机翼的范围。因此,我们说波音777机翼“属于”标准机翼的一种类型。它包含了机翼的所有基本功能,但又在这些功能的基础上有所增加。另一个很好的例子是飞机座位。每个座位都有扶手和座垫等标准附件。但是,头等舱的座位肯定比普通舱座位提供了更多的设备。
  第二种类型是“包含”关系。仍以飞机为例,可在其中找到许多这样的关系。例如,飞机包含了一系列机翼、引擎以及着陆机构。具有“包含”关系的类由另一些类组成,这些类分别定义了自己的功能。
  第三种类型是“利用”关系。如两个对象相互利用,从而实现特定的功能,就可将它们间的关系称为“利用”。例如,航空公司利用飞机传输乘客。乘客利用航空公司到达他们的目的地。对所有这些对象来说,其中包括航空公司、飞机以及乘客,它们都是相互协作的。
  利用两种面向对象的构件方式,我们可定义不同类之间的关系。第一种方式是“继承”。之所以设计“继承”这个概念,是为了消除相似对象之间程序代码的冗余。在我们的飞机例子里,最多可有3中类型的乘客,其中包括头等舱乘客、经济舱乘客以及普通乘客。在我们的系统里,每类乘客都有自己的一套常规信息和方法。但是,每一类也有自己特殊的属性和方法,根据这些特征才能划分它们的类别。我们可以设计3个对象,它们综合起来完整定义了每种类型的乘客。但是,其中肯定有冗余的特性,比如姓名和地址等;也有冗余的方法,比如行李检查和验票程序等。利用“继承”实现技术,我们可事先定义一个常规的乘客类,然后为头等舱、经济舱和普通舱乘客分别定义3个类。这3个类将继承常规乘客类,并添加一些自己特有的附加功能。例如,“头等舱”乘客可以自动收到额外的飞行里程信息,或者使用特殊的验票程序。
  第二种方式是“多形性”。假设航空公司决定为头等舱乘客采取与其他所有乘客类型都不相同的验票方法。在我们采用了常规乘客对象的航空公司例子里,需要一个途径覆盖它的“常规”验票方法。此时,支持“多形性”的一种编程语言允许我们这样做。因此,针对头等舱、经济舱以及普通舱乘客类,我们可以调用验票方法;但是,针对头等舱乘客,这一方法的功能与基层乘客类的方法是不同的。
  不幸的是,Visual Basic提供的类模块不能直接支持继承或多形性。一个类模块可能包含了另一个类模块,而且不同的类模块肯定可以协同工作。但是,不能简单地将一个类的所有属性和方法都继承到另一类。同样,也难以利用“类到类”的关系实现多形性。在Visual Basic5里,由于添加implements关键字,所以能支持多形性的建立。通过使用类模板,可使不同的类具有不同的方法和属性。这种类模板里只包含了所有方法和属性的一个大纲。

关于TeamDoc软件:

TeamDoc是基于服务器/客户端架构的轻量级文件管理软件。TeamDoc将文件集中加密存储在您单位自己的服务器中,员工使用TeamDoc客户端访问服务器,从而获得与自己权限相关的权限:登入后与“我的电脑”界面类似,可以看到自己该看的文件,编辑自己能编辑的文档,对于能看到的文件,还可以细分文档权限,进而做到能看不能拷,能看不能截屏等功能,多种权限灵活设置,在线协同编辑、全文搜索、日志与版本追踪,快速构建企业文档库。告别假大空,我们提供值得您选择的、易用的、可用的文档管理软件。现在就访问TeamDoc首页

TeamDoc软件界面(点击可放大)

版权所有:南京网亚计算机有限公司,本文链接地址: 文件管理软件对象间的关系