設計模式之組合模式

2021-08-13 11:18:32 字數 614 閱讀 2334

組合模式(又為「部分-整體」模式)遮蔽了容器物件與單個物件在使用時的差異,為客戶端提供了統一的操作介面,從而降低客戶**與被呼叫物件的耦合關係,方便系統的維護擴充套件。

如上圖,宣告乙個葉子節點物件,或者乙個集合,都可以用

component myobj = new

component ();

來宣告,你可以把myobj當成乙個葉子節點用,也可以在當成乙個集合使用,在物件中建立乙個list(),通過add()新增新的component。

當面對乙個樹形結構的時候,可以考慮是否使用組合模式。定義乙個共有介面,讓組合物件和單個物件都去實現這個介面。如果面對單個物件,就呼叫單個物件的方法,如果面對組合物件,遞迴遍歷之,依次呼叫每個物件的方法。

簡單地來說,組合模式就是讓客戶可以通過介面統一的使用組合結構和單個物件

其中透明方式即在介面中生命方法,安全方式是在composite宣告左右管理子類物件的方法。由於不透明,組合物件和單個物件將不具有相同的介面。

設計模式之組合模式

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

設計模式之 組合模式

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

設計模式之組合模式

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