閱讀目錄
一:合成/聚合復用原則
二:什么是合成?
三:什么是聚合?
四:為什么盡量不要使用類繼承而使用合成/聚合?
五:合成/聚合復用原則結構圖
一:合成/聚合復用原則
盡量使用合成/聚合,盡量不要使用類繼承
二:什么是合成?
. 合成表示一種強的擁有關系,體現了嚴格的部分和整體的關系,部分和整體的生命周期一樣,打個比方:人有兩個胳膊,胳膊和人就是部分和整體的關系,人去世了,那么胳膊也就沒用了,也就是說胳膊和人的生命周期是相同的
. 合成關系用實心的菱形+實線來表示
三:什么是聚合?
. 聚合表示一種弱的擁有關系,體現的是A對象可以包含B對象,但是B對象並不是A對象的一部分,打個比方:人是群居動物,所以每個人屬於一個人群,一個人群可以有多個人,所以人群和人是聚合的關系
. 聚合關系用空心的菱形+實線來表示
四:為什么盡量不要使用類繼承而使用合成/聚合?
. 對象的繼承關系在編譯時就定義好了,所以無法在運行時改變從父類繼承的子類的實現
. 子類的實現和它的父類有非常緊密的依賴關系,以至於父類實現中的任何變化必然會導致子類發生變化
. 當你復用子類的時候,如果繼承下來的實現不適合解決新的問題,則父類必須重寫或者被其它更適合的類所替換
這種依賴關系限制了靈活性,並最終限制了復用性
五:合成/聚合復用原則結構圖
1和2以及n,被稱為基數,表示這一端的類可以有幾個實例,很顯然,一個人有兩個胳膊,如果一個類可能有無數個實例,則用n表示,一人群可能有無數個人