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-類圖-Composition(組合)和Aggregation(聚合)的區別
- C++ exception 異常類繼承關係C++Exception繼承
- UML類圖--類之間的關係
- Java中類與物件的關係與區別Java物件
- 集合類關係
- 五分鐘看懂UML類圖與類的關係詳解
- 介面、抽象類、普通類之間的關係抽象
- python 類關聯關係Python
- 【java】類之間的關係Java
- Django 中 Aggregation聚合的使用Django
- 聚合類
- C++標準庫中檔案流類的繼承關係C++繼承
- UML類圖介紹&類的六大關係
- kubernetes儲存類與PV與PVC關係及實踐
- 類圖的6大關係詳解
- Java類關係之代理(代理模式)Java模式
- WPF 控制元件類派生關係控制元件
- Java設計模式-類之間的關係Java設計模式
- 類之間的6種關係詳解
- android studio中如何檢視類的關係等Android
- Hibernate中實體類對映檔案表與表的關係模版
- 關於C++中物件與類的詳解及其作用詳解C++物件
- 與數學相關的類
- MongoDB系列--深入理解MongoDB聚合(Aggregation )MongoDB
- JAVA類的頂層Type抽象和繼承關係Java抽象繼承
- 左邊分類和右邊導航的關係
- C++ 類的大小C++
- C++的代理類C++
- 問一個很基礎小白的問題,類與函式的關係。RT函式
- USB 包的分類(令牌包這些)與USB 域的區別及關係
- 人類視覺系統對影像的認知 與 影像壓縮的關係視覺
- 在Java中,以下有關類的關聯關係描述錯誤的是()Java
- 一個聚合的加解密工具類解密
- 類與類的載入
- C++中的容器類C++
- C++ Qt開發:使用關聯容器類C++QT
- C++ 類 & 物件C++物件