設計模式8 組合模式

2021-06-29 16:35:07 字數 1584 閱讀 7708

組合模式首先想到的就是樹形結構,比如我們常用的檔案結構,請看windows的檔案結構:

無論是檔案或者是資料夾,常用操作都是一致的,比如:複製、貼上、剪下、刪除、所佔空間大小。我們並沒有刻意的去分他是資料夾還是檔案。

我們可以把資料夾看成是組合物件,把每乙個檔案看成是單個物件。組合模式模糊了這兩個概念,他使得客戶端能夠用簡單一致的操作來操作兩個不同的東西。

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

client:客戶端。

component:定義組合物件的介面。

leaf:組合物件中的葉子,實現component介面。

composite:組合物件中的節點,組合所有葉子,實現component介面,並且可以刪除和增加葉子。

component

public inte***ce component
composite

public class composite implements component 

public void add(component pcomponent)

public void remove(component pcomponent)

@override

public void show()

} @override

public void ischild(int pfatherlevel)

private void showlevel()

system.out.println(mname);

}}

leaf

public class leaf implements component 

@override

public void show()

@override

public void ischild(int pfatherlevel)

private void showlevel()

system.out.println(mname);

}}

client

public class compositetest 

}

列印結果

節點1-葉子1

-葉子2

-節點2

--葉子3

--葉子4

--葉子5

很久沒寫部落格,撿起來。學如逆水行舟,不進則退。

設計模式 (8)組合模式

組合模式 組合模式,是為了解決整體和部分的一致對待的問題而產生的,要求這個整體與部分有一致的操作或行為。部分和整體都繼承與乙個公共的抽象類,這樣,外部使用它們時是一致的,不用管是整體還是部分,使用乙個方法即可遍歷整體中的所有的部分。就像乙個樹形結構一樣。適用性 常用於組織結構,產品結構之類的整體和部...

8 組合模式

組合模式 1 組合模式 組合模式屬於物件中的結構模式,有時又叫做部分 整體模式。合成模式是將部分和整體的關係用樹結構表示出來。2 結構 以上類圖結構涉及三種角色 抽象構件角色 這是乙個抽象角色,它給參加組合的物件規定乙個介面,這個角色給出共有的介面和預設行為。樹葉構件角色 代表參加組合的樹葉物件。樹...

《設計模式12 組合模式

組合模式其實是乙個很形象的模式。它也被稱為部分整體模式。組合模式的結構就如同樹狀圖一樣。而樹就是枝幹 葉子的組合,組合模式可以形象的這麼理解。其實資料夾是乙個很好的組合模式的體現。乙個資料夾 樹根root 下可能有多個資料夾 枝幹trunk 可能是單個的檔案 樹葉leaf 而枝幹是可以繼續向下延伸的...