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

2021-08-04 22:50:41 字數 1189 閱讀 4484

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

//新增節點

public abstract void add(component c);

//刪除節點

public abstract void remove(component c);

//顯示節點

public abstract void display();

}

public class composite extends component 

@override

public void add(component c)

@override

public void remove(component c)

@override

public void display()

}}

public class leaf extends component

@override

public void display()

@override

public void add(component c)

@override

public void remove(component c)

}

component介面中定義了add和remove對葉子節點的操作方法,但是leaf類中是沒有這個功能,卻也繼承了該方法,這樣做的好處就是是的葉子節點和枝節點對於外界沒有區     別,它們具有完全一致的介面。但是問題也很明顯,leaf沒有新增節點的功能,所以實現add和remove沒有意義。這種方式就叫透明方式。當然也可以選擇在component介面     中不提供這兩個方法,而是讓composite自己提供,這樣的話leaf和composite就沒有一致的介面,客戶端呼叫時需要判斷,有點麻煩,這種方式是安全方式。

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

java設計模式之組合模式

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

java設計模式之組合模式

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

Java設計模式之組合模式

介紹 我們的計算機都擁有檔案系統,資料夾裡面既可以放入檔案,也可以放入子資料夾。在子資料夾中,一樣地既可以放入檔案,也可以放入子資料夾。檔案系統是一種容器結構 遞迴結構。組合模式就是用於創造出這樣的結構的模式。組合模式又叫部分整體模式,用於把一組相似的物件當做乙個單一的物件,它將物件組合成樹形結構以...