組合模式(composite)模式定義:將物件組合成樹形結構以表示"部分—整體"的層次結構。組合模式使得使用者對單個物件和組合物件的使用具有一致性。
使用場景:
分類:
**背景:總公司和分公司共用一套管理系統,無論是總公司還是分公司都有人力和財務部門,乙個系統全公司使用,要求分清結構且功能一致。
抽象公司類:有新增刪除下屬分公司,以及顯示和履行職責的功能。
abstract
class
company
public
abstract
void
add(
company c)
;public
abstract
void
remove
(company c)
;public
abstract
void
display
(int depth)
;public
abstract
void
lineofduty()
;//履行職責
}
具體公司類:用於實現介面,發展下屬分公司
//具體公司類
class
concretecompany
:company
public
override
void
add(
company c)
public
override
void
remove
(company c)
public
override
void
display
(int depth)
//顯示
}public
override
void
lineofduty()
}}
公司部門:無論是總公司還是分公司,都要有人力和財務這兩個部門。
//人力資源部
class
hrdepartment
:company
public
override
void
add(
company c)
public
override
void
remove
(company c)
public
override
void
display
(int depth)
public
override
void
lineofduty()
員工招聘培訓管理"
,name);}
}//財務部
class
financedepartment
:company
public
override
void
add(
company c)
public
override
void
remove
(company c)
public
override
void
display
(int depth)
public
override
void
lineofduty()
公司財務收支管理"
, name);}
}
客戶端:
static
void
main
(string
args)
顯示結果:
結構模式 組合模式
組合模式 composite pattern 組合多個物件形成樹形結構以表示具有 整體 部分 關係的層次結構。組合模式對單個物件 即葉子物件 和組合物件 即容 器物件 的使用具有一致性,組合模式又可以稱為 整體 部分 part whole 模式,它是一種物件結構型模式。將物件組合成樹形結構以表示部分...
分公司 一部門 組合模式
組合模式 composite pattern 又叫部分 總體模式,將物件組合成樹形結構以表示 部分 總體 的層次結構。組合模式使得使用者對單個物件和組合物件的使用具有一致性。組合模式使我們樹型結構的問題中。模糊了簡單元素和複雜元素的概念。客戶程式能夠像處理簡單元素一樣來處理複雜元素,從而使得客戶程式...
分公司 一部門 組合模式
19.1 分公司不就是一部門嗎?整體與部分可以被一致對待,19.2 組合模式 將物件組合成樹形結構以表示 部分 整體 的層次結構,組合模式使得使用者對單個物件和組合物件的使用具有一致性,namespace 組合模式 component為組合中的物件介面宣告,適當情況下,實現所有類共有介面的預設行為,...