首頁  >  文章  >  Java  >  java中聚合和組合的差別是什麼

java中聚合和組合的差別是什麼

青灯夜游
青灯夜游原創
2018-12-15 14:17:278967瀏覽

聚合和組合的區別是:聚合代表了has-a關係,一種單向關係;聚合中的兩種類別(或實體)是可以單獨存在的,不會相互影響。組合代表了part-of關係,組合中的兩個實體(或類別)是高度依賴彼此的,它們之間會相互影響。

java中聚合和組合的差別是什麼

這篇文章跟大家介紹java中關聯、聚合和組合,讓大家了解聚合和組合之間差異是什麼,希望對你們有幫助。 【相關影片教學推薦:Java教學

java中關聯是什麼?

關聯是兩個獨立類別之間的一種關係,它可以透過其物件(或實例)連接兩個完全獨立的實體。關聯可以是任何類型,可以是一對一,一對多,多對一,多對多。

java中聚合是什麼?

聚合是一種特殊的關聯形式,代表了has-a關係;它是類別(或實體)之間的單向關係。例如:錢包和錢,錢包會有錢,錢裡面不會包含錢包;這是一種天生的單向關係。

在聚合的關係中,兩種類別(或實體)是可以單獨存在的,不會相互影響;也就是說:一個類別(或實體)的是否存在不會影響與之聚合的其他類的存在與否。

java中聚合和組合的差別是什麼

java中組合是什麼?

組合是一種受限的聚合形式,代表了part-of關係;其中的兩個實體(或類別)是高度依賴彼此的。就好比如:人類和心臟,人類需要心臟來生存,心臟也需要人體才能生存。

換句話說,當類別(實體)彼此依賴並且它們的壽命相同時(如果一個人死了,那麼另一個也是死去),那麼它就是一個組合。例如:如果沒有人類,心臟就沒有意義了。

聚合和組合的差異

java中聚合和組合的差別是什麼

1、依賴性區別

聚合中的兩種類別(或實體)是可以單獨存在的,不會相互影響;被關聯的一方可以獨立於關聯一方,依賴性不強。

相反,組合中的兩個實體(或類別)是高度依賴彼此的,它們之間會相互影響。

2、關係類型的區別

聚合代表了has-a關係,一種單向關係;組合代表了part-of關係。

3、關聯強度的不同

聚合是一種弱關聯關係;組合是一種強關聯關係。

4、生命週期的不同

在聚合關係中的兩個類別(或實體)的生命週期是不同步;但,在組合關係中的兩個類別(或實體)的生命週期是同步的。

總結:以上就是這篇文章的全部內容,希望能對大家的學習有所幫助。

以上是java中聚合和組合的差別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn