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 類的物件 指標,而且在建...