|
主题: Whole-Part关系
?????????? 内容 ??????????
v 1. 对象Whole-Part关系
v 2. 组合/部分关系
v 3. 包含者/内容关系
v 4. 集合/成员关系
1. 对象Whole-Part关系
类别继承(Class inheritance)和对象组合(Object composition)是软件再使用(Reuse)的两大法宝。类别继承就是建立父、子类别之关系﹔例如﹐「学生」可分为「大学生」、「中学生」和「小学生」三类别﹐其继承关系图标如下﹕
图1、 以UML表达类别继承
对象组合的目的是﹕创造「复合对象」(Composite object)﹔例如﹐医院内含医师和护士等﹐其组合关系图标如下﹕
图2、 以UML表达对象组合
继承与组合两大法宝能联合使用﹐以组织庞大的软件系统。例如﹐汽车分为客车、卡车、轿车等子类别﹐而且汽车内含引擎、车体、轮胎等零件﹐则此汽车系统图标如下图3和图4﹕
图3、 汽车的类别继承体系
图4、 汽车的对象组合关系
本节里﹐将进一步分析与说明对象组合方法。尤顿(Yourdon) 认为﹐常见组合关系有三﹕
1) 组合╱部分(Assembly-parts)关系。
2) 包含╱内容(Container-contents)关系。
3) 集合╱成员(Collection-members)关系。
2. 组合/部分关系
组合/部分关系﹐常称为APO(A part of)关系﹔例如﹐汽车是「组合」﹐其内含各零件是「部分」。门是房子的一部分﹐所以房子是「组合」﹐门是「部分」﹔此外﹐窗子也是房子的「部分」。这房子与门窗之关系﹐图标如下﹕
图5、 房子的对象组合关系
以VB表达如下﹕
'ex01.bas
Imports System.ComponentModel
Imports System.Drawing
Imports System.WinForms
'-------
Class House
Class Door
Public size As Double
Public Sub New(ByVal s As Double)
size = s
End Sub
End Class
Class Window
Public size As Double
Public Sub New(ByVal s As Double)
|