UML類圖中的符號解釋

在UML的定義中,描述類和對象之間的關係,包括以下幾種方式:依賴(Dependency)、關聯(Association)、聚合(Aggregation)、組合(Composition)、泛化(Generalization)和實現(Realization)。現分別說明如下:

1.依賴(Dependency)

在uml中,“依賴”表示爲帶箭頭的虛線,箭頭指向被依賴的元素。是類與類之間的連接,表示爲一個類依賴於另一個類的定義,其中一個類的變化將影響另一個類。依賴總是單向的,不應該存在雙向依賴,這一點要特別注意。更具體的說,依賴可以理解爲:一個類(A)對不在其實例作用域內的另一個類或對象(B)的任何類型的引用。大致包含以下幾種情況:

(1)局部變量;

(2)方法的參數;

(3)靜態方法的調用;

下面是依賴關係的uml示意圖:


2.關聯(Association)

在uml中,關聯表示爲帶箭頭的實線。關聯可以是單向的,也可以是雙向的。如果是雙向關聯,則可以表示爲雙向箭頭,或者沒有箭頭。一般來說,系統設計應表現爲單向關聯,這樣利於維護。一個關聯可以附加“多重性”的修飾符,表示兩個類之間的數量關係。關聯可以理解爲:一個類(A)持有另一個類或對象(B。具體表現爲:

(1)成員變量

下面是關聯關係的uml示例圖:


上面的關聯表示,一個Employee持有(has)0個或多個TimeCard。

3.聚合(Aggregation)

在uml中,聚合關係表示爲空心的菱形箭頭線。聚合關係是關聯關係的一種,表示一種“強”關聯關係。對比與關聯關係,兩個類是處於同一個層次的。而聚合關係,兩個類處於不同的層次,強調了一個整體/局部的關係。例如一輛汽車有一個引擎,4個輪胎。

在聚合關係中,體現了一種“弱擁有”的概念。也就是說,對象A擁有對象B,但B並不是A的組成部分。更具體的表現爲,如果AB聚合而成,則A包含B的全局對象,但B對象可以不在A對象創建時創建。回到前面的例子,汽車對象由輪胎對象聚合而成,但是輪胎對象的生命期並不受汽車對象的左右。當汽車對象銷燬時,輪胎對象也可以單獨存在!

下面是聚合關係的uml示意圖:


從代碼上看,聚合和關聯沒有任何區別。這裏僅僅體現一種概念上的含義。在創建ClassA的時候,不一定需要同時創建ClassB的實例。

 

4.組合(Composition)

在uml中,組合關係表示爲實心菱形箭頭線。組合也叫合成。合成關係強調了比聚合關係更加強的整體/部分的關聯,例如人和四肢。和聚合關係所不同的是,在組合關係中,雖然局部不一定隨着整體的銷燬而銷燬,但整體要麼負責保持局部的存活狀態,要麼負責將其銷燬。也就是說,組合關係中,局部的存活期一定是小於,最多是等於整體的存活期的。

下面是組合關係的uml示例圖:

 

5.泛化(Generalization)

泛化也就是通常所謂的繼承關係,在uml中表示爲一個帶空心三角的實線。表示爲is-a的關係,是對象間耦合度最大的一種關係,子類繼承父類的所有細節,並可以在此基礎上添加自己的特性。

下面是泛化關係的uml圖:


6.實現(Realization)

所謂實現就是對接口的定義實現,很簡單。表現爲帶箭頭的虛線。

下面的實現的uml圖:


 

發佈了45 篇原創文章 · 獲贊 29 · 訪問量 25萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章