VB.Net中文教程(13) Whole-Part关系(1)

主题:  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)

回首页