UML中的聯絡 聚合與組合的區別

2021-04-26 20:23:15 字數 635 閱讀 7505

uml中的聯絡(association)、聚合(aggregation)和組合(composition)三個概念很相似,也很難理解。今天看到這篇文章解釋得很清楚,所以在這裡轉一下,希望能對需要的人有所幫助。

聯絡

聯絡(association)表明某個物件可以向另乙個物件通過某種方式傳送訊息。傳送訊息的方法可以通過指標成員變數,也可以是方法引數、區域性變數等等。例如:

class a

;

聚合

聚合(aggregation)是一種特殊的聯絡,它表明了「部分」到「整體」的關係,顯著的特點就是不能包含迴圈的聯絡(就是說,部分中不能包含整體)。如:

class node

;

上述**只有當子節點不會成為父節點的父節點時(即,必須是樹結構,不能是圖結構),才能稱之為聚合。

組合

組合(composition)跟聚合幾乎相同,唯一的區別就是「部分」不能脫離「整體」單獨存在,就是說, 「部分」的生命期不能比「整體」還要長。例如:

class car

private:

carburetor* itscarb

};

UML中聚合和組合的區別

聚合 聚合其實是關聯的乙個特例,表示了兩個物件之間 part of 部分 整體 的關係,是一種弱關聯,部分的生命週期可以超越整體。在uml中,用整體端有空心菱形箭頭的雙向關聯修飾聚合。聚合的示例如下圖 組合 組合其實是一種強形式的聚合,它具有強的擁有關係,整體與部分的生命週期是一致的。部分 生存在整...

UML中聚合和組合的區別

一直以來,對uml的東西總是模稜兩可,對於類圖中的聚合和組合,知道兩種的區別,但過一段時間後總是分不清兩者誰是誰,唉,主要怪自己的語文沒有學好,呵呵!其實,對於聚合和組合,如果換成英文,就很好理解了 聚合就是 has a 組合就是 contains a 聚合是空心的菱形 組合是實心的菱形 這個比較好...

DDD中的聚合和UML中的聚合以及組合的關係

uml 聚合關係 成員物件是整體的一部分,但是成員物件可以脫離整體物件獨立存在。如汽車 car 與引擎 engine 輪胎 wheel 車燈 light 之間的關係為聚合關係,引擎 輪胎 車燈可以脫離車而存在,比如把乙個引擎換到另乙個汽車上也可以。組合關係 也表示的是一種整體和部分的關係,但是在組合...