設計模式 組合模式

2021-10-24 18:11:44 字數 1581 閱讀 2123

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

個人理解:利用元件化思想,將物件的通用部分抽取出來設計成通用元件,並增加聚合通用元件到自身的能力,每個具體元件同時實現/繼承通用元件來實現個性。這樣一次通過組合不同的元件到自身就形成乙個樹狀的結構。同時由於所有元件都實現自同一通用元件,因此在對單點或是整顆樹的使用上具有一致性

組合模式主要包含如下幾個角色:

從模式結構中我們看出了葉子節點和容器物件都實現component介面,這也是能夠將葉子物件和容器物件一致對待的關鍵所在。

file(component)

public

abstract

class

file

public string getname()

public

void

setname

(string name)

public

abstract

void

display()

;}

folder(composite)

public

class

folder

extends

file

/** * 瀏覽資料夾中的檔案

*/public

void

display()

}/**

* @desc 向資料夾中新增檔案

* @param file

* @return void

*/public

void

add(file file)

/** * @desc 從資料夾中刪除檔案

* @param file

* @return void

*/public

void

remove

(file file)

}

textfile(leaf1)

public

class

textfile

extends

file

public

void

display()

}

imagefile(leaf2)

public

class

imagerfile

extends

file

public

void

display()

}

測試

public

class

client

}

元件的多樣性通常來自於功能的拓展而非對原有功能的增強,所以使用元件時通常需要依賴於底層實現,有悖於依賴倒置原則

本文的案例取自

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

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

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

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

設計模式 組合設計模式

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