將物件組合成樹形結構以表示「部分-整體」的層次結構。composite使得使用者對單個物件和組合物件的使用具有一致性。
我們實現乙個選單結構,乙個選單可以包含子選單或者選單項
定義乙個抽象類,選單和選單項都繼承自這個類
public abstract class menucomponet
public virtual void remove(menucomponet menucomponet)
public virtual menucomponet getchild(int i)
public virtual void print()
}
'>public
abstract
class
menucomponet
public
virtual
void
remove
(menucomponet menucomponet)
public
virtual menucomponet getchild
(int i)
public
virtual
void
() }
選單包含乙個子節點列表
public class menu : menucomponet
public override void add(menucomponet menucomponet)
public override void remove(menucomponet menucomponet)
public override menucomponet getchild(int i)
public override void print()}}
'> public
class
menu : menucomponet
public
override
void
add(menucomponet menucomponet)
public
override
void
remove
(menucomponet menucomponet)
public
override menucomponet getchild
(int i)
public
override
void
() }
}選單項
public class menuitem : menucomponet
public override void print()
}
'> public
class
menuitem : menucomponet
public
override
void
() }
客戶使用
class program
}
'> class
program
}執行結果
Java設計模式(十一) 組合模式
組合模式 一 定義 二 結構 三 具體案例 四 適用性 五 總結 一 定義 將物件組合成樹形結構以表示 部分整體 的層次結構。組合模式使得使用者對單個物件和使用具有一致性。二 結構 類圖 角色 1.component 是組合中的物件宣告介面,在適當的情況下,實現所有類共有介面的預設行為。宣告乙個介面...
java 開發模式之十一 組合模式
組合模式又叫做部分 整體模式 它使我們樹型結構的問題中 模糊了簡單元素和複雜元素的概念 客戶程式可以向處理簡單元素一樣來處理複雜元素 從而使得客戶程式與複雜元素的內部結構解藕。component 為參加組合的物件宣告乙個公共介面 不管是組合還是葉結點 leaf 在組合中表示葉子結點物件 葉子結點沒有...
設計模式C 實現 組合模式
這個模式能夠建立乙個樹形結構,在同乙個結構中處理巢狀選單和選單項組。通過選單和項放在相同結構中,我們建立了乙個 整體 部分 層次結構,即由選單和選單項組成的物件樹。使用組合結構,我們能把相同的操作應用在組合和個別物件上。換句話說,在大多數情況下,我們可以忽略物件組合和個別物件之間的差別。為組合中的物...