c++類與類的聚合(Aggregation)關係
當物件A被加入到物件B中,成為物件B的組成部分時,物件B和物件A之間為聚集關係。聚合是關聯關係的一種,是較強的關聯關係,強調的是整體與部分之間的關係。
[具體表現]
與關聯關係一樣,聚合關係也是通過例項變數來實現這樣關係的。關聯關係和聚合關係來語法上是沒辦法區分的,從語義上才能更好的區分兩者的區別。
[關聯與聚合的區別]
(1)關聯關係所涉及的兩個物件是處在同一個層次上的。比如人和自行車就是一種關聯關係,而不是聚合關係,因為人不是由自行車組成的。
聚合關係涉及的兩個物件處於不平等的層次上,一個代表整體,一個代表部分。比如電腦和它的顯示器、鍵盤、主機板以及記憶體就是聚集關係,因為主機板是電腦的組成部分。
(2)對於具有聚集關係(尤其是強聚集關係)的兩個物件,整體物件會制約它的組成物件的生命週期。部分類的物件不能單獨存在,它的生命週期依賴於整體類的物件的生命週期,當整體消失,部分也就隨之消失。比如張三的電腦被偷了,那麼電腦的所有元件也不存在了,除非張三事先把一些電腦的元件(比如硬碟和記憶體)拆了下來。
UML圖
圖1.3 電腦和元件的聚合關係
[程式碼表現]
public class Computer{
private CPU cpu;
public CPU getCPU(){
return cpu;
}
public void setCPU(CPU cpu){
this.cpu=cpu;
}
//開啟電腦
public void start(){
//cpu運作
cpu.run();
}
}
相關文章
- 類與類之間的基本關係
- UML類圖與類的關係詳解
- C++ exception 異常類繼承關係C++Exception繼承
- UML-類圖-Composition(組合)和Aggregation(聚合)的區別
- UML類圖--類之間的關係
- 集合類關係
- Java中類與物件的關係與區別Java物件
- 五分鐘看懂UML類圖與類的關係詳解
- Java中類名與檔名的關係Java
- 類之間的關係
- 介面、抽象類、普通類之間的關係抽象
- java的類之間的關係:泛化、依賴、關聯、實現、聚合、組合Java
- 聚合類
- UML類圖關係
- ]Iterator原始碼探究及其與Collection類的關係原始碼
- Java中Class類與Object類之間有什麼關係?JavaObject
- java 非靜態內部類與外部類引用之間的關係Java
- 【java】類之間的關係Java
- python 類關聯關係Python
- UML類圖介紹&類的六大關係
- UML 類圖及關係
- C++標準庫中檔案流類的繼承關係C++繼承
- Activity 的啟動模式 以及與AppManager類的關係模式APP
- 設計模式中類的關係設計模式
- PHP中類的繼承關係PHP繼承
- UML中類之間的關係
- Django 中 Aggregation聚合的使用Django
- Qt類繼承關係圖QT繼承
- 類圖的6大關係詳解
- QT中類之間的關係圖QT
- 兩個類的關係,應該如何關聯?
- Java類關係之代理(代理模式)Java模式
- AS3類關係圖AIR版S3AI
- WPF 控制元件類派生關係控制元件
- C++:關於委託類C++
- 評估類、評估類別、評估級別關係
- Java設計模式-類之間的關係Java設計模式
- 大話UML中類之間的關係