UML中的四种关系

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
技术分享

 

 

 

 

 

 

 

以上是关于UML中的四种关系的主要内容,如果未能解决你的问题,请参考以下文章

菜鸟也疯狂UML系列——浅析UML四种关系

类(对象)之间的四种关系

『软件工程13』浅谈面向对象方法,统一建模语言UML

UML类图中类之间关系汇总

mysql查看版本的四种方法

UML 类关系--聚合 组合 关联 依赖