設計模式之組合模式

2021-08-05 18:36:20 字數 1119 閱讀 4298

組合模式可以用在樹狀結構的組合當中,把上下級物件抽象出乙個基類,通過這個基類可以實現帶分支的父節點,也可以實現單個末端節點。

public

abstract

class component

abstract

void add(component component);

abstract

void remove(component component);

void function(int level)

system.out.println(sb.tostring());

}}

最基本的可以只定義兩種型別的實現:

帶有分支的實現:

public

class

parentcompany

extends

component

@override

void add(component component)

@override

void remove(component component)

@override

void function(int level)

}}

不帶分支的實現:

public

class

endcompany

extends

component

@override

void add(component component)

@override

void remove(component component)

}

測試類:

public

class

main

}

輸出:

國家級總公司

省級總公司

市級總公司

鎮級辦事處

市級辦事處1

市級辦事處2

省級辦事處

對於更複雜的情況可以進一步派生不同的實現,細分更多的分支和終端節點。

設計模式之組合模式

組合模式 以 整體 部分 的層次結構,將物件以樹型結構組合起來。如下圖所示 組合模式首先得定義乙個用來管理和訪問部件們的抽象類。public abstract class equipment 再建立乙個組合體的部件 class element equipment 現在我們再來定義乙個組合體,也就是組...

設計模式之 組合模式

有時候我們需要維護一些物件,這些物件具有一定的層次結構,它們之間雖然差異很大,但在使用的時候我們希望能構一致的對待,比如windows控制項,繪圖中的圖形等,這個時候我們就可以採用組合模式來進行管理。組合模式就是將要管理的物件按樹型結構來進行組織,表示成一種 整體 部分 的層次結構,使得使用者對單個...

設計模式之組合模式

組合模式 將物件組合成樹形結構以表示 部分 整體 的層次結構。使得使用者對單個物件和組合物件的使用具有一致性。適用性 想表示物件的部分 整體層次結構,希望使用者忽略組合物件與單個物件的不同,使用者將統一地使用組合結構中的所有物件。典型表示結構圖 宣告組合中的物件宣告介面 在適當的情況下,實現所有類共...