設計模式 組合模式

2021-10-08 11:19:51 字數 1343 閱讀 1241

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

組合模式又分透明模式和安全模式兩種

所謂透明模式是將組合相關的方法抽象到父類中,使葉節點和枝節點結構完全相同。但是葉節點的add()和remove()方法其實是冗餘的,沒有意義的。

安全模式就是將葉節點與枝節點區分開來,葉節點不用實現無用的方法。但是增加了客戶端的耦合性,使用時需要判斷型別。

我們就拿 linux 」一切皆檔案「 的檔案系統舉例

先定義抽象的檔案介面

public

abstract

class

file

void

display()

abstract

void

add(file f)

;abstract

void

remove

(file f)

;abstract

protected

void

display

(int depth)

;}

目錄實現類,作為枝節點

public

class

directory

extends

file

@override

void

add(file f)

@override

void

remove

(file f)

@override

protected

void

display

(int depth)

}}

普通檔案實現類,這是葉節點

public

class

commonfile

extends

file

@override

void

add(file f)

@override

void

remove

(file f)

@override

protected

void

display

(int depth)

}

測試

public

class

demo

}

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

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

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

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

設計模式 組合設計模式

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