設計模式中聚合和組合

2022-09-23 19:33:13 字數 819 閱讀 2825

最近一直在看設計模式,以前寫過一篇文章:設計模式中的關係在**中的實現

聚合:表示兩個物件之間是整體和部分的弱關係,部分的生命週期可以超越整體。如電腦和滑鼠。

?大話上的聚合:

?大話上的組合:

表示兩個物件之間是整體和部分的強關係,部分的生命週期不能超越整體,或者說不能脫離整體而存在。組合關係的「部分」,是不能在整體之間進行共享的。

●異同點

共同點:他們都是屬於關聯,整體與部分的關係。

不同點:生命週期不同,聚合是獨立的,不隨整體共存亡的(生命週期不同步)。組合正好相反,與整體共存亡(生命週期同步)。

●**中的實現

?聚合在**中的中的實現是比較靈活的,大雁聚合為雁群,只要大雁類是雁群的成員變數就行了。

**有兩種方式都是聚合:

第一種方式:這種方式一般用在大雁widegoose是抽象類(父類)的時候,這時候,就可以傳入不同的子類,這樣就會使它呼叫的時候很靈活。

class wirdgooseaggregate

}第二種方式:這種方式就是寫死了,是不能靈活的,但是這樣寫也有它的好處,就是定義了乙個初始值。在狀態模式中就用到了這種方式,其實是定義了乙個初始物件。

class wirdgooseaggregate

}?組合關係

在**中就沒有這樣靈活了,它是強耦合的,它生命週期是同生同死的關係。我們知道乙個物件被例項的時候就是我們意義上的「生」,因此我們就把組合的物件放在被組合物件的建構函式中:

class bird

}我們學習東西的時候,很想一下子就都要全懂了,其實學習是乙個不斷思考、不斷研究的東西。我們要做的是:知道它、研究它、會用它、交流它。

設計模式 組合 聚合復用原則

合成 聚合復用原則 合成 聚合復用原則 composition aggregation principle carp 盡量使用合成 聚合,不要使用類繼承。即在乙個新的物件裡面使用一些已有的物件,使之成為新物件的一部分,新物件通過向這些物件的委派達到復用已有功能的目的。就是說要盡量的使用合成和聚合,而...

組合和聚合舉例說明 組合關係和聚合關係

組合關係和聚合關係 浙江廣播電視大學 章一鳴年月日 一 組合關係和和聚合關係的提出 組合關係和聚合關係是現代語言學中的乙個基本原理。語言學綱要 上說 符號和符號組合起來的關係稱為符號的 組合關係。在鏈條的某一環節上能夠互相替換的符號具有某種相同的作用,它們自然地聚集成群。它們彼此的關係叫做聚 合關係...

UML中聚合和組合的區別

聚合 聚合其實是關聯的乙個特例,表示了兩個物件之間 part of 部分 整體 的關係,是一種弱關聯,部分的生命週期可以超越整體。在uml中,用整體端有空心菱形箭頭的雙向關聯修飾聚合。聚合的示例如下圖 組合 組合其實是一種強形式的聚合,它具有強的擁有關係,整體與部分的生命週期是一致的。部分 生存在整...