設計模式 組合模式

2021-09-06 17:48:41 字數 1710 閱讀 8137

定義:將物件組合成樹形結構,表示層次結構關係,並且讓物件能夠以同樣的方式呈現給客戶端程式。

舉例:家族譜的編寫:

女性:記錄到家譜中,但不能傳宗接代。

理解:每乙個小家庭中,爸爸媽媽和我,都是爸爸做主,可踢出我跟媽媽中的任何乙個,也可增加任何乙個。元件模式中的元件可以是單獨乙個物件組成,也可以是多個元件組成(乙個家庭,甚至乙個家庭的多級延續);

類圖:

族員共性**:

///

/ ///

//族人 抽象出來的族人共性

/// public

abstract

class

father

}//增加後代

public

abstract

void

add(father boy);

//逐出家譜

public

abstract

void

remove(father boy);

//定義所有族人,做個簡介

public

abstract

void

intro();

}

家族成員**

//

男性後代

public

class

boy : father

public boy(string

name)

list

myfamily = new list();

//自我簡介

public

override

void

intro()

;", name);

foreach (father f in

myfamily)

}//增加後代

public

override

void

add(father boy)

//逐出家譜

public

override

void

remove(father boy)

}//女性後代

public

class

gril : father

public gril(string

name)

//自我簡介

public

override

void

intro()

;", name);

}//不能新增

public

override

void

add(father store)

//不能刪除

public

override

void

remove(father store)

}

客戶端**:

public

static

void

main()

有組合模式的案例可知:客戶端**,很容易組建層次結構,並且層次分明,同時又很容易遍歷所有的元件集合。但要注意理解組合模式中的節點與頁,節點可刪可加,頁則不能增刪。

大家都好好理解,消化下這個模式,想想都那裡,那種情況下能使這個模式的特性發揮的淋漓盡職。

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

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

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

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

設計模式 組合設計模式

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