在學習 oop 的過程中,肯定會接觸到類間關係這一概念,目前的我的認知是:類間關係就是兩個大類關聯和繼承(不知道是否有偏差...)
關聯關係可以就依據耦合度的強弱劃分為:依賴,關聯,聚合,組合四種(耦合度依次增強)。耦合度簡單的說的就是關係的緊密程度(類 a 改變對類 b 的影響程度),詳情請自行谷歌
四種關係的區別概述如下:
1. 依賴關係(dependency)比較好區分:主要的表現形式是區域性變數,方法的引數,靜態方法的呼叫。
eg: 人有駕駛這個行為,可以定義 drive() 方法。傳入的引數可以是自行車,電單車,汽車等。可以定義類 person,bike,car:例項化後,car 或 bike 傳入 person.drive() 中。行為 drive 的實現依賴於 car 或 bike。但是不具體依賴於特定的物件。
2. 關聯,聚合,組合 都是通過類的成員變數的方式體現
3. 同一層級的類的關係一般是關聯關係
4. 如果兩個類是整體和個體(區域性)的關係,那就是聚合(組合)關係
5. 聚合包含組合關係(像長方形包含正方形一下)
6. 聚合和組合的區別:物件能否脫離整體單獨存在,可以就是聚合中的個體,不可以就是組合中的區域性
『單獨存在』:也表明了物件的生存週期,組合關係中區域性物件的生存週期依附於整體物件之上。即整體負責區域性的生命週期
UML類關係 依賴 關聯 聚合 組合
1,依賴關係 dependency 單向,表示乙個類依賴於另乙個類的定義,其中乙個類的變化將影響另外乙個類,是一種 use a 關係 如果a依賴於b,則b表現為a的區域性變數,方法引數,靜態方法呼叫等 public class person public class person public cl...
依賴 關聯 聚合 組合
依賴 關聯 聚合 組合 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...