uml圖六種箭頭的含義

ZHAOXING_ME發表於2020-12-17

本文是貼上兩個文章總結來的,單純為了明白知識點。

https://blog.csdn.net/wglla/article/details/52225571

https://www.cnblogs.com/moonlightL/p/7265417.html

 

泛化

 

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

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

 

實現

 

概念:實現是一種類與介面的關係,表示類是介面所有特徵和行為的實現,在程式中一般通過類實現介面來描述

表示方法:空心三角形箭頭的虛線,實現類指向介面

 

依賴

 

概念:是一種使用的關係,即一個類的實現需要另一個類的協助。java中,方法引數需要傳入另一個類的物件,就表示依賴這個類。

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

指類與類之間的聯接,依賴關係表示一個類依賴於另一個類的定義。一般而言,依賴關係在Java語言中體現為局域變數、方法的形參,或者對靜態方法的呼叫。採用虛線箭頭表示

例如,程式設計師工作需要用到電腦,程式碼表示如下:

public class Programmer{
    public void work(Computer computer) {
        
    }
}

關聯

 

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

java中一個類的全域性變數引用了另一個類,就表示關聯了這個類

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

指類與類之間的關係,它使得一個類知道另一個類的屬性和方法。關聯可以是雙向的,也可以是單向的。在Java語言中,關聯關係一般使用成員變數來實現。採用實線箭頭表示

例如,企鵝只存在在南極,與氣候有關係,用程式碼表示如下:

public class Bird {
    private Climate climate;
}

 

 

聚合

概念:聚合關聯關係的一種特例,是強的關聯關係。聚合是整體和個體之間的關係,即has-a的關係,整體與個體可以具有各自的生命週期,部分可以屬於多個整體物件,也可以為多個整體物件共享。程式中聚合和關聯關係是一致的,只能從語義級別來區分;

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

關聯關係的一種,表示一種弱的“擁有”關係,體現的是A物件可以包含B物件,但是B物件不是A物件的一部分。採用空心菱形箭頭表示

例如,大雁是群居動物,每隻大雁都屬於一個雁群,一個雁群可以有多隻大雁,用程式碼表示如下:

public class WideGooseAggregate {
    //private WideGoose[] wideGooses;
    private List<WideGoose> wideGooses;
}

 

組合

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

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

 

關聯關係的一種,表示一種強的“擁有”關係,體現了嚴格的部分和整體的關係,部分和整體的生命週期一樣。採用實心菱形箭頭表示

例如,每隻鳥都有翅膀,用程式碼表示如下:

public class Bird {
    private Wing wing;
    public Bird() {
        wing = new Wing();
    }
}

相關文章