Java中的聚合 組合

2021-06-26 19:27:37 字數 575 閱讀 1156

原帖:

聚合和組合的區別:

1.聚合關係也稱"has-a"關係,組合關係也稱"contains-a"關係

2.聚合關係表示事物的整體/部分關係的較弱情況,組合關係表示事物的整體/部分關係的較強的情況.

3.在聚合關係中,代表部分事物的可以屬於多個聚合物件,可以為多個聚合物件共享,而且可以隨時改變它所從屬的聚合物件.代表部分事物的物件與代表聚合事物    物件的生存期無關,一旦刪除了它的乙個聚合物件,不一定也就隨即刪除代表部分事物的物件.在組合關係中,代表整體事物的物件負責建立和刪除代表部分事物的物件,代表部分事物只屬於乙個組合物件.一旦刪除了組合物件,也就隨即刪除了相應的代表部分事物的物件.

舉個通俗的例子你可能更好懂些:

聚合(aggregation):-----has a---------------人擁有電腦

聚合關係中代表部分事物的物件與代表聚合事物的物件的生存期無關,一旦刪除了聚合物件不一定就刪除了代表部分事物的物件

組合(composition):----contains a----------人是由手,腳,臉等部分組成的

組合中一旦刪除了組合物件,同時也就刪除了代表部分事物的物件。

關聯 聚合 組合

關聯 聚合 aggregation 以及組合 composition 的區別?涉及到uml中的一些概念 關聯是表示兩個類的一般性聯絡,比如 學生 和 老師 就是一種關聯關係 聚合表示 has a 的關係,是一種相對鬆散的關係,聚合類不需要對被聚合類負責,如下圖所示,用空的菱形表示聚合關係 從實現的角...

聚合,組合,依賴

1.聚合 是關聯關係的一種特例,體現的是整體與部分擁有的關係,即 has a 的關係,此時整體與部分之間可以分離。cpp view plain copy 學校 class school 學生 class student 可以看到 student 類中包含了乙個 school 類的物件 指標,而且在建...

UML 關聯 聚合 組合

聚合和組合都屬於關聯,處於聚合關係的兩個類生命週期不同步,則是聚合關係 處於組合關係的兩個類的生命週期同步。關聯可以有方向,可以是單向關聯,也可以是雙向關聯。關聯在c 中呈現為 class a class b a function1 b b 或a function1 b b 或a function1...