Java中關聯和聚合之間的區別
關聯
從物件的角度看,關聯是指兩個相關物件之間的“擁有”關係。例如,一個員工擁有一個通訊地址。
class Employee { String name; Address communicationAddress; } class Address { String address; }
聚合
從物件的角度看,聚合是指兩個相關物件之間的“擁有+”關係。例如,一個部門擁有多個員工。它指的是父類中存在子物件集合。例如
class Department { String name; List<Employee> employees; } class Employee { String name; }
序號 | 要點 | 關聯 | 聚合 |
---|---|---|---|
1 | 定義 | 關聯是指兩個使用對方的類之間的“擁有”關係。 | 聚合是指兩個類之間的“擁有+”關係,其中一個類包含其他類的物件集合。 |
2 | 靈活性 | 本質上是僵化的。 | 本質上是靈活的。 |
3 | 連結 | 需要連結來維持關聯。 | 物件之間並不一定有連結。 |
4 | 統一建模語言 | 線用於表示關聯。 | 菱形用於表示組裝類旁邊的聚合關係。 |
廣告