設計模式之組合模式

2021-10-24 02:20:28 字數 2111 閱讀 4545

需求:在乙個頁面展示學校下面的學院,學院下面所有的專業資訊。

如果我們按時學校->學院->專業這樣一層一層的劃分,然後分別寫出對應的類資訊,這樣寫出來的**模擬較多且大,而且也不能很好的展示學校的新,如果我們把這樣結構劃分為一棵樹結果,學校是根節點,然後一層一層的劃分,最下面的專業是葉子節點,這樣我們就能很友好的管理樹資訊。====》組合模式來解決該問題。

組合模式:組合模式又叫部分和整體的模式,他建立物件組的樹形結構,將物件組合樹形結構已整體-部分的層次關係來展示。

組合模式依據樹形結構來組合物件,用來表示部分以及整體層次,該設計模式屬於結構型模式,組合模式使得使用者對單個物件和組合物件的訪問具有一致性,即:組合能讓客戶以一致性的放肆處理個別物件以及組合物件。

通過**來解決學校展示的問題:

類圖資訊:

/*** 定義公共抽象類,定義規範資訊

* @author administrator**/

public abstract class organizationcomponent

public void setname(string name)

public organizationcomponent(string name)

/*** 新增的方法

* @param organizationcomponent

*/protected void add(organizationcomponent organizationcomponent)

/*** 刪除學校的方法

* @param organizationcomponent

*/protected void remove(organizationcomponent organizationcomponent)

/*** 列印資訊

*/protected abstract void print();

}/**

* 學校的資訊

* @author administrator**/

public class university extends organizationcomponent

@override

protected void add(organizationcomponent organizationcomponent)

@override

protected void remove(organizationcomponent organizationcomponent)

@override

protected void print() }}

/*** 學院的基本資訊

* @author administrator**/

public class college extends organizationcomponent

@override

protected void add(organizationcomponent organizationcomponent)

@override

protected void remove(organizationcomponent organizationcomponent)

@override

protected void print() }}

/*** 專業資訊

* @author administrator**/

public class major extends organizationcomponent

@override

protected void print()

/*** 展示學校的資訊

* @author administrator**/

public class client

}組合模式注意事項:

設計模式之組合模式

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

設計模式之 組合模式

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

設計模式之組合模式

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