設計模式考前預習 15 組合模式

2021-10-24 12:08:29 字數 895 閱讀 4647

整體和部分可以被一致對待。

組合模式: 將物件組合成樹形結構以表示『部分-整體』的層次結構。組合模式使得使用者服單個物件和組合物件的使用具有一致性。

透明方式和安全方式:

透明方式:也就是說在component中宣告所有用來管理子物件的方法,其中包括add、remove等。這樣實現component介面的所有子類都具備了add和remove。這樣做的好處是葉節點和枝節點對於外界沒有區別,他們具備完全一致的行為介面。但問題也很明顯,因為leaf類本身不具備add(),remove()方法的功能,所以實現它是沒有意義的。

安全方式,也就是在component介面中不去宣告addmove方法,那麼子類的leaf也就不需要去實現它,而是在composite宣告所有用來管理子類物件的方法,不過由於不夠透明,所以樹葉和樹枝類將不具有相同的介面,客戶端的呼叫需要做相應的判斷,帶來了不便。

何時使用組合模式:

需求中是體現部分與整體層次的結構時,希望使用者可以忽略組合物件與單個物件的不同,統一的使用組合結構中的所有物件時,就應該考慮使用組合模式了。

組合模式定義了包含基本物件和組合物件的類的層次結構。基本物件都可以被組合成更複雜的組合物件,而這個組合物件又可以被組合,這樣不斷的遞迴下去,客戶**中,任何用到基本物件的地方都可以抵用組合物件了。

使用者是不用關心到底是處理乙個葉節點還是處理乙個組合元件,也就用不著為定義組合而寫一些選擇判斷語句了

組合模式讓客戶可以一致的使用組合結構和單個物件

組合模式:有枝節點類和葉節點類,枝節點類用來增加葉節點,葉節點繼承根節點的類,枝節點類也是繼承根節點類,並使用父類來與葉節點建立關係。

設計模式 15 組合設計模式

目錄 什麼是組合模式 為什麼要用組合模式 組合模式組成 由每乙個單元節點,組合成乙個整體節點,這種對單個節點的結構儲存和對整體節點的儲存和處理邏輯保持一致的設計模式便是組合設計模式。應用中有很多場景會用到組合模式,例如樹狀儲存的結構,比如多級選單,每一層級選單的處理都可以抽象保持一致。比如企業的組織...

設計模式利劍15 組合模式

定 義 將物件組合成樹形結構以表示 整體 部分 的層次結構,使得使用者對單個物件和組合物件的使用具有一致性 優 點 1 高層模組呼叫簡單 2 節點自由增加 使用場景 1 你想表示物件的部分 整體層次結構 2 你希望使用者忽略組合物件與單個物件的不同,使用者將統一地使用組合結構中的所有物件。總結 組合...

15 組合模式

定義 將物件組合成樹形結構以表示 部門 整體 的層次結構。組合模式使得使用者對單個物件和組合物件的使用具有一致性。適用 當發現需求中是體現部分與整體層次的結構時,以及你希望使用者可以忽略組合物件與單個物件的不同,同意地適用組合結構中的所有物件時,就應該考慮用組合模式了。asp.net的treevie...