《JAVA與模式》之組合模式

2021-09-08 17:13:54 字數 1667 閱讀 1204

定義(gof《設計模式》):

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

及角色:

1.component 是組合中的物件宣告介面,在適當的情況下,實現所有類共有介面的預設行為。宣告乙個介面用於訪問和管理component

子部件。

2.leaf 在組合中表示葉子結點物件,葉子結點沒有子結點。

3.composite 定義有枝節點行為,用來儲存子部件,在component介面中實現與子部件有關操作,如增加(add)和刪除

(remove)等。

組合類29

class composite extends

component

3738

@override

39public

void

add(component c)

4344

@override

45public

void

foreach() 51}

5253

@override

54public

void

remove(component c)

5859}60

//不在有根節點

61class leaf extends

component

6768

@override

69public

void

add(component c)

73@override

74public

void

foreach()

7778

@override

79public

void

remove(component c)

8384 }

執行結果:

節點名: 根節點

節點名: 一級子節點child

tself name-->一級子節點child之子節點一

tself name-->一級子節點child之子節點二

節點名: 一級子節點child2

什麼情況下使用組合模式

引用大話設計模式的片段:「當發現需求中是體現部分與整體層次結構時,以及你希望使用者可以忽略組合物件與單個物件的不同,統一地使用組合結構中的所有物件時,就應該考慮組合模式了。」

java設計模式之組合模式

組合模式 允許你將物件組合成樹形結構來表現 整體 部分 層次結構。組合能讓客戶以一致的方式處理個別物件以及物件組合。組合模式類圖 client 客戶使用component介面操作組合中的物件。component component為組合中的所有物件定義乙個介面,不管是組合還是節點,component...

java設計模式之組合模式

一 組合模式簡介 組合模式 將物件組合成樹形結構以表示 部分 整體 的層次結構。composite使得使用者對單個物件和組合物件的使用具有一致性。有時候又叫做部分 整體模式,它使我們樹型結構的問題中,模糊了簡單元素和複雜元素的概念,客戶程式可以向處理簡單元素一樣來處理複雜元素,從而使得客戶程式與複雜...

《Java設計模式之組合模式》

組合模式 將物件組合成樹形結構以表示 部分 整體 的層次結構。組合模式使得使用者對單個物件和組合物件的使用具有一致性。新增節點 public abstract void add component c 刪除節點 public abstract void remove component c 顯示節點...