依賴 關聯 聚合 組合 的區別

2021-08-22 13:49:12 字數 580 閱讀 1590

1.例項化(依賴)

a將b作為區域性變數進行使用.

程式1

void a::foo()

2.關聯

a與b存在一定的關係. 這裡只考慮單向導航. 關聯在**中有多種表現形式.

第一種, 作為引數:

程式2

void a::foo(b& b) // (b* b) or (b b)

第二種, 作為成員變數:

程式3

class a

void foo()

private:

b& b_; // b* b_

}; 3.聚合

聚合是一種特殊的關聯, 聚合更明確指出聚合的主體具有整體-部分關係. **的表現形式見程式3.

4.組合

組合是一種特殊的聚合, 組合中的某個主體控制著另外乙個主體的生命週期,而且他們還存在整體-部分關係.

程式4

class a

~a()

void foo()

private:

b* b_;

};

依賴 關聯 聚合 組合

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

聚合 組合 關聯的區別

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

聚合,組合,依賴

1.聚合 是關聯關係的一種特例,體現的是整體與部分擁有的關係,即 has a 的關係,此時整體與部分之間可以分離。cpp view plain copy 學校 class school 學生 class student 可以看到 student 類中包含了乙個 school 類的物件 指標,而且在建...