UML關系圖


回憶下UML圖

繼承

 接口實現

 

 

接下來是類與類的關系(從弱到強)

倚賴(dependency):

類與類之間的連接,表示一個類依賴於另外一個類的定義,依賴關系時是單向的

簡單理解就是類A使用到了類B,這種依賴具有偶然性、臨時性,是非常弱的關系。

在java中表現為:

1.局部變量

2.方法中的參數

3.對靜態方法的調用

關聯(association)

關系表示類與類之間的連接,它使得一個類知道另外一個類的屬性和方法
關聯關系體現的是兩個類,或者類與接口之間的強依賴關系,這種關系很強烈,比依賴更強,不是偶然性的,也不是臨時性的,而是一種長期性,相對平等的關系。

Java中表現

1.使用實例變量

聚合(aggregation)

是關聯關系的特例,是強的關聯關系,聚合是整個與個體的關系,即has-a關系(is-a是繼承),此時整體和部分是可以分離的,他們具有各自的生命周期,部分可以屬於多個對象,也可以被多個對象共享;
比如計算機和CPU,公司與員工的關系;

與關聯代碼層面一致。

 

組合(compostion)

是關聯關系的一種特例,體現的是一種contain-a關系。它同樣體現整體與部分的關系,但此時整體與部分是不可分的,整體生命周期的結束也意味着部分生命周期的結束,反之亦然。

與關聯代碼層面一致。
組合/聚合區別:

組合“部分”不能脫離“整體”單獨存在,其生命周期應該是一致的。

聚合“部分”可以脫離“整體”單獨存在,他們具有各自的生命周期。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM