設計模式之組合模式14

2021-07-23 06:18:39 字數 1414 閱讀 2732

迭代器模式pass,因為迭代器模式是在jdk1.2出現iterator時的模式。對於現在用list,map遍歷即可搞定。

乙個組織架構圖,上至ceo,下至普通開發人員,有這樣的乙個樹結構,我們用組合模式來實現

將物件抽離為以下幾種

抽象資訊類

public

abstract

class crop

public string getinfo()

public

void

setparent(crop crop)

public crop getparent()

}

普通開發

public

class

leaf

extends

crop

}

管理層

public

class

branch

extends

crop

public

void

addsubordinate(crop crop)

public listgetsubordinate()

}

客戶端呼叫

public

class client

public

static branch compositetree()

public

static string gettreeinfo(branch branch) else

}return info;}}

執行結果

crop

[name=張三, position=ceo, salary=100000.0]

crop

[name=部門經理a, position=部門經理, salary=61000.0]

crop

[name=普通開發a, position=普通開發, salary=11000.0]

crop

[name=普通開發b, position=普通開發, salary=12000.0]

crop

[name=部門經理b, position=部門經理, salary=62000.0]

crop

[name=普通開發c, position=普通開發, salary=13000.0]

crop

[name=部門經理c, position=部門經理, salary=63000.0]

設計模式之組合模式

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

設計模式之 組合模式

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

設計模式之組合模式

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