組合模式:允許你將物件組合成樹形結構來表現「整體/部分」層次結構。組合能讓客戶以一致的方式處理個別物件以及物件組合。
組合模式類圖:
client:客戶使用component介面操作組合中的物件。
component:component為組合中的所有物件定義乙個介面,不管是組合還是節點,component可以為add(),remove(),eachchild()實現一些預設的行為。
leaf:葉節點沒有孩子。葉節點通過實現composite支援的操作,定義了組合內元素的行為。
composite:composite的角色是要定義元件的行為,而這樣的元件具有子節點。
抽象類component**實現:
public
abstract
class component
public
abstract
void
add(component component);
public
abstract
void
remove(component component);
public
abstract
void
eachchild();
}
leaf類**實現:
public
class
leaf
extends
component
@override
public
void
add(component component)
@override
public
void
remove(component component)
@override
public
void
eachchild()
}
composite類**實現:
public
class
composite
extends
component
@override
public
void
add(component component)
@override
public
void
remove(component component)
@override
public
void
eachchild() }}
client類**實現:
public
class client
}
執行結果:
節點:根節點
節點:左子節點
葉節點:左葉節點1
葉節點:左葉節點2
節點:右子節點
java設計模式之組合模式
一 組合模式簡介 組合模式 將物件組合成樹形結構以表示 部分 整體 的層次結構。composite使得使用者對單個物件和組合物件的使用具有一致性。有時候又叫做部分 整體模式,它使我們樹型結構的問題中,模糊了簡單元素和複雜元素的概念,客戶程式可以向處理簡單元素一樣來處理複雜元素,從而使得客戶程式與複雜...
《Java設計模式之組合模式》
組合模式 將物件組合成樹形結構以表示 部分 整體 的層次結構。組合模式使得使用者對單個物件和組合物件的使用具有一致性。新增節點 public abstract void add component c 刪除節點 public abstract void remove component c 顯示節點...
Java設計模式之組合模式
介紹 我們的計算機都擁有檔案系統,資料夾裡面既可以放入檔案,也可以放入子資料夾。在子資料夾中,一樣地既可以放入檔案,也可以放入子資料夾。檔案系統是一種容器結構 遞迴結構。組合模式就是用於創造出這樣的結構的模式。組合模式又叫部分整體模式,用於把一組相似的物件當做乙個單一的物件,它將物件組合成樹形結構以...