定義(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 顯示節點...