1. 特殊Whole-Part关系

  ---- 母子对象关系

 

    大家已经熟悉父子类别关系﹐也就是「继承」关系了。于此说明另一种常见关系── 母子对象。一般称之为「组合/部分」关系。日常生活中﹐处处可见到这种母子对象。例如﹐客厅内有沙发、桌子、椅子等等。客厅是母对象﹐沙发、桌子、椅子是子对象。再如计算机屏幕上的窗口内有按钮、选择表、对话盒等等。窗口是母对象﹐按钮、选择表是子对象。于此将说明如何建立母子对象关系。有了关系﹐母子就能互相沟通了。母子对象之间﹐如何沟通呢﹖也就是说﹐母对象如何呼叫子对象的程序呢﹖反过来﹐子对象如何呼叫母对象的程序呢﹖欲呼叫对方的程序﹐必先与对方建立关系才行。因之﹐如何建立母子对象关系﹐是顶重要之课题﹗

   请先看个例子﹐有两个类别──Room和Desk。若Room代表房间﹐Desk代表房间内的桌子﹐则它们会诞生母子对象﹕

 

      

 

通常﹐您会依房间的大小来决定桌子的大小。因之﹐Desk对象应跟Room对象沟通﹐取得房间的大小﹐才决定自己的大小。若有个Room之参考﹐则Desk对象就能跟Room对象沟通了。于是﹐可设计下述VB程序:

 

ex01.bas

Imports System.ComponentModel

Imports System.Drawing

Imports System.WinForms

----------------------------------------------------

Class Room

   Protected rSize As Double

   Shared motherObject As Room

 

   Public Sub New()

       motherObject = Me

   End Sub

   Shared Function GetMother() As Room

       GetMother = motherObject

   End Function

   Public Function GetSize() As Double

       GetSize = rSize

   End Function

End Class

 

Class Desk

   Protected dSize As Double

   Public Sub New()

       dSize = Room.GetMother().GetSize() * 0.18

   End Sub

   Public Function GetSize() As Double

       GetSize = dSize

   End Function

End Class

----------------------------------------------------

Class MyRoom

   Inherits Room

   Private rd As Desk

  

<