1. 聚合:
是關聯關係的一種特例,體現的是整體與部分擁有的關係,即 has-a 的關係,此時整體與部分之間可以分離。
[cpp]view plain
copy
//學校
class
school
; //學生
class
student
;
可以看到 student 類中包含了乙個 school 類的物件
指標,而且在建立乙個student 類物件時一定要對指標進行初始化,就好像當你上學時一定會有乙個學校!這個時候,我們可以說 student 的每乙個物件都有乙個school 的屬性來標識它是屬於哪個學校的!
但是兩者之間並不存在「同生共死」的關係,也就是說當這個學生不存在的時候,學校還是有的!
2. 組合:
也是關聯關係的一種特例,體現在一種 contain - a 的關係,這種關係比聚合更強,整體與部分是不可分的。
[cpp]view plain
copy
//眼class
eye
; //鼻
class
nose
; //頭
class
head
;
乙個head ,一定會有 eye,nose 等。一旦 head 不存在了,eye nose 也沒存在的意義了。即 head
擁有這些物件類。
3. 依賴:
當乙個物件負責構造另乙個物件的例項,或者依賴另乙個物件的服務時,這兩個物件之間主要體現為依賴關係。
依賴關係表現在區域性變數,方法的引數,以及對靜態方法的呼叫。
[cpp]view plain
copy
//蘋果刀
class
knife
//蘋果
class
; //學生
class
student
; student::dosomething()
同樣,student 每次做事 dosomething() 也不會只去削東西吧。
**:
依賴 關聯 聚合 組合
依賴 關聯 聚合 組合 1 依賴 語義 a use b。依賴是區域性變數 形參 靜態方法 返回引數 生命週期中物件依賴關係 當f方法被呼叫時,a與b產生依賴關係,當呼叫結束,依賴關係結束 class a a 虛線箭頭指向 b 2 關聯 class soldier 語義 a has b 士兵可以有槍,...
依賴 關聯 聚合 組合 的區別
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 p...
UML類關係 依賴 關聯 聚合 組合
1,依賴關係 dependency 單向,表示乙個類依賴於另乙個類的定義,其中乙個類的變化將影響另外乙個類,是一種 use a 關係 如果a依賴於b,則b表現為a的區域性變數,方法引數,靜態方法呼叫等 public class person public class person public cl...