最近一直在看設計模式,以前寫過一篇文章:設計模式中的關係在**中的實現
聚合:表示兩個物件之間是整體和部分的弱關係,部分的生命週期可以超越整體。如電腦和滑鼠。
?大話上的聚合:
?大話上的組合:
表示兩個物件之間是整體和部分的強關係,部分的生命週期不能超越整體,或者說不能脫離整體而存在。組合關係的「部分」,是不能在整體之間進行共享的。
●異同點
共同點:他們都是屬於關聯,整體與部分的關係。
不同點:生命週期不同,聚合是獨立的,不隨整體共存亡的(生命週期不同步)。組合正好相反,與整體共存亡(生命週期同步)。
●**中的實現
?聚合在**中的中的實現是比較靈活的,大雁聚合為雁群,只要大雁類是雁群的成員變數就行了。
**有兩種方式都是聚合:
第一種方式:這種方式一般用在大雁widegoose是抽象類(父類)的時候,這時候,就可以傳入不同的子類,這樣就會使它呼叫的時候很靈活。
class wirdgooseaggregate
}第二種方式:這種方式就是寫死了,是不能靈活的,但是這樣寫也有它的好處,就是定義了乙個初始值。在狀態模式中就用到了這種方式,其實是定義了乙個初始物件。
class wirdgooseaggregate
}?組合關係
在**中就沒有這樣靈活了,它是強耦合的,它生命週期是同生同死的關係。我們知道乙個物件被例項的時候就是我們意義上的「生」,因此我們就把組合的物件放在被組合物件的建構函式中:
class bird
}我們學習東西的時候,很想一下子就都要全懂了,其實學習是乙個不斷思考、不斷研究的東西。我們要做的是:知道它、研究它、會用它、交流它。
設計模式 組合 聚合復用原則
合成 聚合復用原則 合成 聚合復用原則 composition aggregation principle carp 盡量使用合成 聚合,不要使用類繼承。即在乙個新的物件裡面使用一些已有的物件,使之成為新物件的一部分,新物件通過向這些物件的委派達到復用已有功能的目的。就是說要盡量的使用合成和聚合,而...
組合和聚合舉例說明 組合關係和聚合關係
組合關係和聚合關係 浙江廣播電視大學 章一鳴年月日 一 組合關係和和聚合關係的提出 組合關係和聚合關係是現代語言學中的乙個基本原理。語言學綱要 上說 符號和符號組合起來的關係稱為符號的 組合關係。在鏈條的某一環節上能夠互相替換的符號具有某種相同的作用,它們自然地聚集成群。它們彼此的關係叫做聚 合關係...
UML中聚合和組合的區別
聚合 聚合其實是關聯的乙個特例,表示了兩個物件之間 part of 部分 整體 的關係,是一種弱關聯,部分的生命週期可以超越整體。在uml中,用整體端有空心菱形箭頭的雙向關聯修飾聚合。聚合的示例如下圖 組合 組合其實是一種強形式的聚合,它具有強的擁有關係,整體與部分的生命週期是一致的。部分 生存在整...