由于公司包含数个部门﹐所以公司与部门之间也是整体╱部分关系。此外﹐职员也是公司的成员﹐所以公司与职员之间也是整体╱部分关系。
由于组织与成员之间关系是府拾可得之整体╱部分关系﹐极为常见﹔因之﹐经由这种关系可找到有关之对象及类别。在设计软件时﹐可别忘了掌握此重要关系。事实上﹐软件也应表达出这种关系﹐才能使得软件中的对象结构与实物世界中的对象结构一致。
在对象导向程序设计之过程中﹐通常先于程序中定义有关之类别﹐再利用已定义之类别来诞生对象来与实物世界中的对象相对应﹐以便让软件更贴切地表示实际的系统之需求。因之﹐在找到对象之后(其方法如上节所述)﹐就确定它们的所属类别。确定了这些基本的类别之后﹐就经由「父子关系」找出有关的父类别或子类别﹐并且确定这些类别之间的关系。再接下来﹐就是利用对象之间的整体╱部分关系﹐来找出相关的对象﹐并进而找出相关之类别﹐并且确定这些类别之间的关系。
本书里﹐将以 VB.net语言来说明如何运用类别来组织对象﹐并像建造万里长城般有系统地将对象组织起来﹐形成既可靠又好用的现代软件。
4. 类别之设计
对象导向程序设计(Object-Oriented Programming 简称 OOP)之观念能大量简化计算机软件之复杂度﹐让人们更容易发展及维护软件。OOP 的两个最基本观念是﹕类别(Class) 及对象(Object)。俗语常说﹕「见树不见林」或「见林不见树」﹐其中的林就是「类别」﹐而林之组成元素──树就是「对象」了。依传统之程序写法﹐主要之程序设计工作是在于设计指令、叙述及函数等等﹔然而在OOP 之新观念中﹐写程序的主要工作在于──设计类别﹐亦即「造林」之工作。设计各式各样之类别后﹐再做「雕材」的工作﹐对树木做各种运用﹔亦即﹐使用类别之对象﹐而产生有价值之信息。请看如何设计一类别叫──Tree(树林)﹐其格式为﹕
Class Tree
品种
年龄
高度
End Class
此告诉计算机﹕对于树林中的树﹐将记录其 3种特性(Attribute) ──品
种、年龄及高度。例如有一棵树﹐其特性为﹕
品种﹕peach
年龄﹕8 年
高度﹕2.1 尺
这是树林中的一棵树﹐在计算机的Tree类别中﹐就必须有一「对象」(Object)和它对应并且储存它的特性。至于如何产生Tree类别之个体呢﹖其指令为﹕
Dim x As New Tree()
此时计算机就诞生对象 x。x 能储存此树之资料如下﹕
如果您想记录别棵树之资料﹐可再宣告Tree类别之对象如下﹕
Dim y As New Tree()
对象 y就可储存此树的资料了。实物上之关系﹕
树林 <----> 树
树林是一个集合(Set),一棵树是集合里的元素。其表现于计算机程序上是﹕
类别 <----> 对象
类别是一个集合,一个对象是集合里的元素。
此为 OOP之基本观念。类别设计之优劣常决定软件之生命和价值﹐好的设计其软件寿命源源流长﹐价值连城。类别之设计并非到此为止﹐还要继续做一项重要工作──分类(Classification)﹐亦即寻找「子类别」(Subclass)。例如﹕上述树林中的树若可分为两种──果树与竹子﹐则「树林」类别可分为两个子类别──「果树」与「竹子」。
图5 类别之细分(Refine)
此为实物上之类别关系。程序中的类别关系必须和实物上的情况相呼应。程序中的类别宣告格式为﹕
Class Tree
品种
年龄
高度
End Class
Class FruitTree
Inherits Tree
成熟月份
价格
End Class
Class Bamboo
Inherits Tree
用途
End Class
其中﹐FruitTtree及Bamboo是Tree之子类别(Subclass)﹔而Tree是FruitTree及Bamboo之父类别 (Super Class)。于程序中﹐其关系表示如下──
Class 类别
Inherits 父类别
FruitTree类别中含有两项新特性──「成熟月份」及「价格」。这告诉计算机说﹕对于果树﹐必须多储存两项资料。这两项资料是果树才有的﹐竹子就没有。Bamboo类别中含有一项新特性﹐这告诉计算机说﹕对于竹子﹐必须多储存一项资料──「用途」。这是竹子才有的资料﹐果树则无。例如﹕有一棵果树﹐其资料为﹕
品种﹕peach
年龄﹕8 年
高度﹕2.1 公尺
成熟月份﹕3 月
价格﹕20 元
在计算机中﹐必须宣告FruitTree类别之对象来储存这些资料。欲产生此对象﹐程序可写为﹕
Dim a As New FruitTree()
此时计算机就产生一个FruitTree类别之对象﹐叫 a。它包含5项资料──
其中包含了Tree类别内之 3项资料以及FruitTree类别专有之两项资料。因为Tree为FruitTree之父类别﹐所以FruitTree「继承」(Inherit) 其父类别Tree的 3个特性。
图 6 资料的继承
同理﹐如果有一棵竹子﹐其资料为﹕
品种﹕green
年龄﹕2 年
高度﹕10.0 公尺
用途﹕chopsticks
在计算机中﹐必须宣告Bamboo类别的对象来储存这些资料。欲产生此对象﹐程序可写为﹕ Dim b As New Bamboo()
此时﹐计算机就诞生一个Bamboo类别之对象 b。它可储存 4项资料──
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




