設計模式之組合模式

2021-10-19 07:51:56 字數 757 閱讀 7549

開篇引言:「從前有座山,山上有個廟,廟裡有個和尚在講故事,講什麼故事呢?將從前有座山,山上有個廟,廟裡有個和尚在講故事,講什麼故事呢?從前。。。。」

可以說組合模式可以總結如下:

1、在繼承關係中,因為子類可以訪問父類的相關方法,所以子類可以當做父類來使用。整體上來看,就是樹形結構中的所有元素可以當做一種元素來處理,比如上圖中不論是viewgroup還是view,都可以當做其view來處理,因為他們都有共同的父類方法。在比如鳥類可以分成鴿子、老鷹,白鶴、布穀鳥、鸚鵡等等等,而「天高任鳥飛」中的這個「鳥」可不是特指某一種鳥,而是所有會飛的鳥。

2、看本文開始的圖,每個viewgroup都含有viewgroupview,很明顯的可以看出整體和區域性的關係。

組合模式的使用場景很廣泛,如果你使用過json格式的資料的話,對這種模式肯定陌生,比如gson的jsonelement,就是組合模式的乙個經典應用。

如果你學習過flutter的話,那麼也應該對此模式不會陌生,比如flutter的element也是應用了組合模式,見下圖:

組合模式的理解並不難,在這裡就不在寫**例子了,感覺沒啥必要。

設計模式之組合模式

組合模式 以 整體 部分 的層次結構,將物件以樹型結構組合起來。如下圖所示 組合模式首先得定義乙個用來管理和訪問部件們的抽象類。public abstract class equipment 再建立乙個組合體的部件 class element equipment 現在我們再來定義乙個組合體,也就是組...

設計模式之 組合模式

有時候我們需要維護一些物件,這些物件具有一定的層次結構,它們之間雖然差異很大,但在使用的時候我們希望能構一致的對待,比如windows控制項,繪圖中的圖形等,這個時候我們就可以採用組合模式來進行管理。組合模式就是將要管理的物件按樹型結構來進行組織,表示成一種 整體 部分 的層次結構,使得使用者對單個...

設計模式之組合模式

組合模式 將物件組合成樹形結構以表示 部分 整體 的層次結構。使得使用者對單個物件和組合物件的使用具有一致性。適用性 想表示物件的部分 整體層次結構,希望使用者忽略組合物件與單個物件的不同,使用者將統一地使用組合結構中的所有物件。典型表示結構圖 宣告組合中的物件宣告介面 在適當的情況下,實現所有類共...