天天看點

UML圖中6種箭頭的含義

在看一些技術部落格的時候,經常會見到部落格裡畫上很多uml圖。因為經常會被這幾種表達關系的箭頭搞混,這裡我就把常見的6種箭頭表達的含義理一下。

泛化

概念:泛化是一種一般與特殊、一般與具體之間關系的描述,具體描述建立在一般描述的基礎之上,并對其進行了擴充。在java中用來表示繼承的關系。

表示方法:用實線空心三角箭頭表示。

實作

概念:實作是一種類與接口的關系,表示類是接口所有特征和行為的實作,在程式中一般通過類實作接口來描述

表示方法:空心三角形箭頭的虛線,實作類指向接口

依賴

概念:是一種使用的關系,即一個類的實作需要另一個類的協助。

java中,方法參數需要傳入另一個類的對象,就表示依賴這個類。

表示方法:虛線箭頭,類A指向類B。

關聯

概念:表示類與類之間的聯接,它使一個類知道另一個類的屬性和方法,這種關系比依賴更強、不存在依賴關系的偶然性、關系也不是臨時性的,一般是長期性的。

java中一個類的全局變量引用了另一個類,就表示關聯了這個類

表示方法:實線箭頭,類A指向類B

聚合

概念:聚合關聯關系的一種特例,是強的關聯關系。聚合是整體和個體之間的關系,即has-a的關系,整體與個體可以具有各自的生命周期,部分可以屬于多個整體對象,也可以為多個整體對象共享。程式中聚合和關聯關系是一緻的,隻能從語義級别來區分;

表示方法:尾部為空心菱形的實線箭頭(也可以沒箭頭),類A指向類B

組合

概念:組合也是關聯關系的一種特例。組合是一種整體與部分的關系,即contains-a的關系,比聚合更強。部分與整體的生命周期一緻,整體的生命周期結束也就意味着部分的生命周期結束,組合關系不能共享。程式中組合和關聯關系是一緻的,隻能從語義級别來區分。

表示方法:尾部為實心菱形的實作箭頭(也可以沒箭頭),類A指向類B

UML圖中6種箭頭的含義