設計模式 組合模式

2021-07-03 14:41:21 字數 2500 閱讀 5155

定義:將物件組合成樹型結構一表示「部分-整體」的層次結構。它使得客戶對單個物件和復合物件的使用具有一致性。

類圖:

說明:component表示抽象構件,它可以是介面或者抽象類,為葉子構件和容器構件物件宣告介面,在該角色中可以包含所有子類共有行為的宣告和實現,在抽象構件中還定義了訪問及管理子構件的方法,如增加子構件、刪除子構件、獲取子構件等;leadf表示葉子構件,在組合中表示葉子節點物件,葉子節點沒有子節點,它實現抽象構件介面宣告的基本行為;composite表示容器構件,它定義包含子節點(可以使葉子節點或容器節點)的構件的行為;client表示客戶類,它通過component介面控制組合構件中的物件。

優點:

①組合模式可以很容易的增加新的構件

②使用組合模式可以使客戶端變得很容易設計,因為客戶單可以對組合和葉子節點一視同仁。

缺點:

①使用組合模式後,控制樹枝構件的型別不太容易。

②用繼承的方法來增加新的行為很困難。

適用環境:

①你想表示物件的部分-整體層次結構

②你希望使用者忽略組合物件與單個物件的不同,使用者將統一地使用組合結構中的所有的物件。

例項場景:使用組合模式設計乙個防毒軟體的框架,該軟體既可以對某個資料夾防毒,也可以對某個指定的檔案進行防毒,檔案種類包括文字檔案textfile、檔案imagefile、視屏檔案、videofile。以下使用的透明組合模式。

例項類圖:

例項**:

//抽象構件:

/**

* 抽象檔案類:抽象構件

* @author fly

* */

abstract class abstractfile

//以下是leaf構件

/**

* @author fly

* */

class imagefile extends abstractfile

@override

public void add(abstractfile element)

@override

public void remove(abstractfile element)

@override

public void display()

}/**

* * @author fly

* */

class textfile extends abstractfile

@override

public void add(abstractfile element)

@override

public void remove(abstractfile element)

@override

public void display()

}/**

* * @author fly

* */

class videofile extends abstractfile

@override

public void add(abstractfile element)

@override

public void remove(abstractfile element)

@override

public void display()

}

//以下是容器構件

/**

* 資料夾類:容器構件

* @author fly

* */

class folder extends abstractfile

@override

public void add(abstractfile element)

@override

public void remove(abstractfile element)

@override

public void display()

}}

//客戶端測試

/**

* 客戶端測試類

* @author fly

* */

public class client

}

//執行結果:

組合模式 設計模式 組合模式

1.需求分析 假設要給乙個大公司做辦公管理系統,公司有人力資源部 財務部等,然後公司在其他城市還有分公司,分公司也有自己的人力資源部 財務部等,要求總公司 分公司以及各部分成樹狀結構管理。要完成這麼乙個系統,為了有乙個更好的設計,方便開發的展開,就需要了解乙個設計模式 組合模式。2.定義 將物件組合...

設計模式 組合模式 組合模式使用

目錄 組合模式概括 組合模式使用場景 定義 將物件組合成樹形結構以表示 部分 整體 的層次結構 作用 使客戶端對單個物件和組合物件保持一致的處理方式 使用場景 1.希望客戶端可以忽略組合物件與單個物件的差異時 2.處理乙個樹形結構時 優點 清楚的定義分層次的複雜物件,表示物件的全部或部分層次 讓客戶...

設計模式 組合設計模式

組合模式 composite pattern 又稱部分整體模式,用於把一組相似的物件當做乙個單一的物件,組合模式依據樹形來組合物件,用來表示部分以及整體層次,為結構型設計模式,它建立來物件組的樹形結構。意圖 將物件組合成樹形結構以表示 部分 整體 的結構層次,組合模式使得使用者對單個物件和組合物件的...