設計模式之 組合模式

2021-10-02 01:50:10 字數 1490 閱讀 8485

組合模式(結構型):又叫部分-整體模式,它是一種將物件組合成樹狀的層次結構的模式,用來表示「部分-整體」的關係,使使用者對單個物件和組合物件具有一致的訪問性。

1.抽象構件角色:它的主要作用是為樹葉構件和樹枝構件宣告公共介面,並實現它們的預設行為。

2.樹葉構件角色:是組合中的葉節點物件,它沒有子節點,是樹枝構件的子節點。

3.樹枝構件角色:是組合中的分支節點物件,它有子節點,它的主要作用是儲存和管理子部件

選單--樹枝,菜品—樹葉,選單下有多個菜品,而菜品沒有子菜品。要使使用者對菜品和選單的操作都是一致的介面。

}說明:定義選單和菜品的操作介面,並顯示其預設方法,抽象構建角色。

public class menuitem extends menucomponent 

@override

public double getprice()

@override

public boolean isvegetarian()

@override

public void print()

}

說明:菜品,樹葉構件角色,定義菜品的屬性和重寫菜品自己的方法。

public class menu extends menucomponent 

@override

public void add(menucomponent menucomponent)

@override

public void remove(menucomponent menucomponent)

@override

public void print() }}

說明:選單,樹葉構件角色,選單下包含有選單或菜品陣列,定義選單自己的屬性和重寫選單自己的方法。

public class componenttest 

}

說明:測試及客戶端類。

1.使用者需要遮蔽單個物件和組合物件之間的不同,讓使用者使用同乙個介面操作。

2.適用於呈現樹葉和樹枝結構(樹形結構)的業務場景,如檔案和資料夾,如xml解析,公司部門等。

設計模式之組合模式

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

設計模式之 組合模式

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

設計模式之組合模式

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