一、Association關聯關係 說明:Assocition(關聯):描述了兩個或多個類之間的結構性關係。 (1)普通關聯: 1)Association name名稱:用以描述該關係的性質。 2)Role角色:當一個類處於關聯的某一端時,該類就在這個關係中扮演了一個特定的角色;角色是關聯中靠近它的 ...
一、Association關聯關係
說明:Assocition(關聯):描述了兩個或多個類之間的結構性關係。
(1)普通關聯:
1)Association name名稱:用以描述該關係的性質。
2)Role角色:當一個類處於關聯的某一端時,該類就在這個關係中扮演了一個特定的角色;角色是關聯中靠近它的一端的類對另外一端的類呈現的職責。
3)Multiplicity多重性:關聯角色的多重性是說明一個關聯的實例中有多少個相互連接的對象。
例如():
Public Class Person
Private employer As Company
End Class
Public Class Company
Private employee As Person
'……
End Class
例如:
Public Class CatalogEntry
Private name As String
Private number As Integer
Private cost As Double
Public Function getCost() As Double
Return cost
End Function
End Class
Public Class Part
Private entry As CatalogEntry
Public Function Cost() As Double
Return entry.getCost
End Function
End Class
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim screw As New CatalogEntry("screw", 28834, 0.02)
Dim screw1 As New Part(screw)
screw1.Cost()
'……
End Sub
上面的兩個例子,第一個是一個雙向的普通關聯,第二個例子是一個單向關聯。同理,兩個類之間可以有多種關聯,一個類也可以和多個類關聯,類也可以自身關聯。
(2)聚合aggregation
說明:聚合表示一種弱的“擁有”關係,體現的是A對象可以包含B對象,但B對象不是A對象的一部分。
例:
Public Class GooseGroup
Private arrayWildGoose As New WildGoose()
'……
End Class
(3)組合composition
說明:一種強的“擁有”關係,體現了嚴格的部分和整體的生命周期一樣。
例如:
Public Class Bird
Private wing As Wing
Public Sub New()
wing = New Wing() '在鳥bird類中,初始化時,實例化翅膀Wing,它們之間同時生成
End Sub
End Class
二、Generalization泛化關係
說明:是一種特殊/一般關係,特殊元素(子元素)的對象可替代一般元素(父元素)的對象。用這種方法,子元素共用了父元素的結構和行為。
表示方法:
Public Class Dog : Inherits Animal
'……
End Class
說明:VB.net中如果說明某個類不再被繼承,可以使用notInheritable
三、Dependency依賴關係
依賴關係:
例如:
說明:動物有幾大特征,比如有新陳代謝,能繁殖。而動物要有生命力,需要氧氣、水以及食物等。也就是說,動物依賴氧氣和水。他們之間是依賴關係(dependency),用虛線箭頭來表示
例如:
Public Class Professor
Public Function Teach(ByVal c As Course)
'……
End Function
End Class
說明:如果兩個類有結構關係(關聯關係),那麼就不用依賴關係(兩個事物一般都有這個關係)
四、Realization實現
說明:實現是類元之間的語義關係,在該關係中一個類元描述了另一個類元保證實現的契約。
表示方法:
Public Interface IShape
Function Draw()
End Interface
Public Class Circle : Implements IShape
Public Function Draw() Implements IShape.Draw
End Function
End Class