<?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("s程式設計客棧ub 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();
?>
執行結果:
-- all menu ---------
-- sub menu1 ---------
163#www.163.com
sina#www.sina.com
-- sub menu2 ---------
baidu#www程式設計客棧.baidu.com
PHP設計模式之組合模式
當我們的乙個物件可能代表乙個單一的實體,或者乙個組合的實體,但是仍然需要通過同樣的方式被使用時,這種情形則適合使用組合模式的設計。組合模式是一種結構型模式。當看了書上的解釋之後,並不是很理解,遂去翻了翻 大化設計模式 以下為原文截圖 看完這本書上的解釋之後也不是很理解,但是能夠進行編碼了,以下為組合...
PHP設計模式之組合模式
網際網路公司流行扁平化管理,也就是管理層級盡量少於或者不超過三層,作為乙個底層的碼農,你的ceo和你的職級也就相差3層以內。但是很多傳統企業,則會有非常深的層級關係,從資料結構看,這種按職能進行分組的組織架構非常像一顆樹。而我們今天介紹的組合模式的作用就和這個企業組織架構層級的模式非常類似。gof定...
php 論壇 PHP設計模式之組合模式
網際網路公司流行扁平化管理,也就是管理層級盡量少於或者不超過三層,作為乙個底層的碼農,你的ceo和你的職級也就相差3層以內。但是很多傳統企業,則會有非常深的層級關係,從資料結構看,這種按職能進行分組的組織架構非常像一顆樹。而我們今天介紹的組合模式的作用就和這個企業組織架構層級的模式非常類似。gof定...