<?php
/**
* 組合模式
* * 將物件組合成樹形結構以表示"部分-整體"的層次結構,使得客戶對單個物件和復合物件的使用具有一致性
*/abstract
class
menucomponent
public
function
remove
($component
)public
function
getname()
public
function
geturl()
public
function
display()
}class
menu
extends
menucomponent
public
function
add(
$component
)public
function
remove
($component
)public
function
display()
}}class
item
extends
menucomponent
public
function
display()
}class
client
public
function
setmenu
($menu
)public
function
displaymenu()
}// 例項一下
// 人
// 班級
$submenu1
=new
menu
("sub menu1");
$submenu1
->
add(
$item1);
$submenu1
->
add(
$item2);
$submenu2
=new
menu
("sub menu2");
$submenu2
->
add(
$item3);
$submenu2
->
add(
$item4);
$submenu3
=new
menu
("sub menu3");
$submenu3
->
add(
$item3);
$submenu3
->
add(
$item4);
// 所有班級
$allmenu
=new
menu
("all menu");
$allmenu
->
add(
$submenu1);
$allmenu
->
add(
$submenu2);
$allmenu
->
add(
$submenu3);
// 列印所有班級
$objclient
=new
client
($allmenu);
$objclient
->
displaymenu()
;// 列印第2 班級
$objclient
->
setmenu
($submenu2);
$objclient
->
displaymenu()
;
組合模式 設計模式 組合模式
1.需求分析 假設要給乙個大公司做辦公管理系統,公司有人力資源部 財務部等,然後公司在其他城市還有分公司,分公司也有自己的人力資源部 財務部等,要求總公司 分公司以及各部分成樹狀結構管理。要完成這麼乙個系統,為了有乙個更好的設計,方便開發的展開,就需要了解乙個設計模式 組合模式。2.定義 將物件組合...
設計模式 組合模式 組合模式使用
目錄 組合模式概括 組合模式使用場景 定義 將物件組合成樹形結構以表示 部分 整體 的層次結構 作用 使客戶端對單個物件和組合物件保持一致的處理方式 使用場景 1.希望客戶端可以忽略組合物件與單個物件的差異時 2.處理乙個樹形結構時 優點 清楚的定義分層次的複雜物件,表示物件的全部或部分層次 讓客戶...
設計模式 組合設計模式
組合模式 composite pattern 又稱部分整體模式,用於把一組相似的物件當做乙個單一的物件,組合模式依據樹形來組合物件,用來表示部分以及整體層次,為結構型設計模式,它建立來物件組的樹形結構。意圖 將物件組合成樹形結構以表示 部分 整體 的結構層次,組合模式使得使用者對單個物件和組合物件的...