設計模式之組合模式

2021-07-11 14:57:33 字數 2193 閱讀 8586

總體來說設計模式分為三大類:

建立型模式5種:工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。

結構型模式7種:介面卡模式、裝飾器模式、**模式、外觀模式、橋接模式、組合模式、享元模式。

行為型模式11種:策略模式、模板方法模式、觀察者模式、迭代子模式、責任鏈模式、命令模式、備忘錄模式、狀態模式、訪問者模式、中介者模式、直譯器模式。

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

涉及角色:

①component 是組合中的物件宣告介面,在適當的情況下,實現所有類共有介面的預設行為。宣告乙個介面用於訪問和管理component子部件;

②leaf 在組合中表示葉子結點物件,葉子結點沒有子結點;

③composite 定義有枝節點行為,用來儲存子部件,在component介面中實現與子部件有關操作,如增加和刪除等。

demo:例舉公司組成結構

首先,建立抽象類

public abstract class

company

public company()

public string getname()

public void setname(string name)

protected abstract void add(company company);

protected abstract void romove(company company);

protected abstract void display(int depth);

}

其次,建立實體類
public class

concretecompany

extends

company

public concretecompany(string name)

@override

protected void add(company company)

@override

protected void display(int depth)

system.out.println(new string(sb) + this.getname());

for (company c : clist)

}@override

protected void romove(company company)

}

public class

financedepartment

extends

company

public financedepartment(string name)

@override

protected void add(company company)

@override

protected void display(int depth)

system.out.println(new string(sb) + this.getname() ) ;

}@override

protected void romove(company company)

}

public class

hrdepartment

extends

company

public hrdepartment(string name)

@override

protected void add(company company)

@override

protected void display(int depth)

system.out.println(new string(sb) + this.getname() ) ;

}@override

protected void romove(company company)

}

然後,建立測試類
public class

test

}

設計模式之組合模式

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

設計模式之 組合模式

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

設計模式之組合模式

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