關聯:類的例項持有著對其他物件的引用,沒有整體與部分的意義。
組合:整體與部分的關係,且類的例項與其內部的物件在生命期上保持一致,同時建立和銷毀。另外,組合不允許有組合迴路,否則編譯不報錯,但是執行時將會出現stackoverflowexception 的異常導致程式終止。
聚合:整體與部分的關係,且類的例項與其內部的物件不具有生命期的一致性,只是對另乙個物件的引用,並不擁有其生命週期的管理權,但是含有整體與部分的意義。另外,聚合允許有組合迴路,其內部物件只是以引用的形式存在,不具備對其生命週期的管理,這也是聚合與組合之間的最大區別。
另外,如果a b c三個類都是可序列化的,那麼其內部的物件關係應該為引用,即聚合關係,是可以存在迴圈迴路的情況的。
關聯 組合 聚合 依賴關係比較
類之間的關係 1 種類 generalization 泛化 dependency 依賴關係 association 關聯關係 aggregation 聚合關係 composition 合成關係 2 其中aggregation 聚合關係 composition 合成關係 屬於association 關...
關聯 組合 聚合 依賴關係比較
類之間的關係 1 種類 generalization 泛化 dependency 依賴關係 association 關聯關係 aggregation 聚合關係 composition 合成關係 2 其中aggregation 聚合關係 composition 合成關係 屬於association 關...
關聯 組合 聚合 依賴關係比較
類之間的關係 1 種類 generalization 泛化 dependency 依賴關係 association 關聯關係 aggregation 聚合關係 composition 合成關係 2 其中aggregation 聚合關係 composition 合成關係 屬於association 關...