UML中的四種關系


一、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

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM