關聯 聚合 組合

2021-04-23 19:34:08 字數 532 閱讀 7612

關聯、聚合(aggregation)以及組合(composition)的區別?

涉及到uml中的一些概念:關聯是表示兩個類的一般性聯絡,比如「學生

」和「老師

」就是一種關聯關係;聚合表示

has-a

的關係,是一種相對鬆散的關係,聚合類不需要對被聚合類負責,如下圖所示,用空的菱形表示聚合關係:

從實現的角度講,聚合可以表示為

:

class a   class b

組合表示

contains-a

的關係,關聯性強於聚合:組合類與被組合類有相同的生命週期,組合類要對被組合類負責,採用實心的菱形表示組合關係:

實現的形式是

:

class a class b

UML 關聯 聚合 組合

聚合和組合都屬於關聯,處於聚合關係的兩個類生命週期不同步,則是聚合關係 處於組合關係的兩個類的生命週期同步。關聯可以有方向,可以是單向關聯,也可以是雙向關聯。關聯在c 中呈現為 class a class b a function1 b b 或a function1 b b 或a function1...

依賴 關聯 聚合 組合

依賴 關聯 聚合 組合 1 依賴 語義 a use b。依賴是區域性變數 形參 靜態方法 返回引數 生命週期中物件依賴關係 當f方法被呼叫時,a與b產生依賴關係,當呼叫結束,依賴關係結束 class a a 虛線箭頭指向 b 2 關聯 class soldier 語義 a has b 士兵可以有槍,...

聚合 組合 關聯的區別

記得在當時學習uml總是不好分清聚合與組合的關係,找工作時特地複習了這塊的內容,結果正巧被面試官問道,這兩天又在搞這塊的內容,對聚合與組合有了更清楚的了解 聚合 表示兩個物件之間是整體和部分的弱關係,部分的生命週期可以超越整體。如電腦和滑鼠,就可以用一下圖形表示 組合 表示兩個物件之間是整體和部分的...