最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

php設(shè)計(jì)模式 Composite (組合模式)

 更新時(shí)間:2011年06月26日 10:46:08   作者:  
將對象組合成樹形結(jié)構(gòu)以表示"部分-整體"的層次結(jié)構(gòu),使得客戶對單個(gè)對象和復(fù)合對象的使用具有一致性
復(fù)制代碼 代碼如下:

<?php 
/** 
* 組合模式 

* 將對象組合成樹形結(jié)構(gòu)以表示"部分-整體"的層次結(jié)構(gòu),使得客戶對單個(gè)對象和復(fù)合對象的使用具有一致性 
*/ 
abstract class MenuComponent 

public function add($component){}
public function remove($component){}
public function getName(){}
public function getUrl(){}
public function display(){}
}
class Menu extends MenuComponent
{
private $_items = array();
private $_name = null;
public function __construct($name)
{
$this->_name = $name;
}
public function add($component)
{
$this->_items[] = $component;
}
public function remove($component)
{
$key = array_search($component,$this->_items);
if($key !== false) unset($this->_items[$key]);
}
public function display()
{
echo "-- ".$this->_name." ---------<br/>";
foreach($this->_items as $item)
{
$item->display();
}
}
}
class Item extends MenuComponent
{
private $_name = null;
private $_url = null;
public function __construct($name,$url)
{
$this->_name = $name;
$this->_url = $url;
}
public function display()
{
echo $this->_name."#".$this->_url."<br/>";
}
}
class Client
{
private $_menu = null;
public function __construct($menu)
{
$this->_menu = $menu;
}
public function setMenu($menu)
{
$this->_menu = $menu;
}
public function displayMenu()
{
$this->_menu->display();
}
}
// 實(shí)例一下
// 創(chuàng)建menu
$subMenu1 = new Menu("sub menu1");
$subMenu2 = new Menu("sub menu2");
$subMenu3 = new Menu("sub menu3");
$item1 = new Item("163","www.163.com");
$item2 = new Item("sina","www.sina.com");
$subMenu1->add($item1);
$subMenu1->add($item2);
$item3 = new Item("baidu","www.baidu.com");
$item4 = new Item("google","www.google.com");
$subMenu2->add($item3);
$subMenu2->add($item4);
$allMenu = new Menu("All Menu");
$allMenu->add($subMenu1);
$allMenu->add($subMenu2);
$allMenu->add($subMenu3);
$objClient = new Client($allMenu);
$objClient->displayMenu();
$objClient->setMenu($subMenu2);
$objClient->displayMenu();

相關(guān)文章

  • php仿ZOL分頁類代碼

    php仿ZOL分頁類代碼

    模板zol網(wǎng)站的分頁效果代碼,效果如下圖所示
    2008-10-10
  • 一個(gè)PHP緩存類代碼(附詳細(xì)說明)

    一個(gè)PHP緩存類代碼(附詳細(xì)說明)

    一個(gè)PHP緩存類代碼,后面都有詳細(xì)的說明,學(xué)習(xí)php的朋友可以參考下。
    2011-06-06
  • PHP PDO fetch 模式各種參數(shù)的輸出結(jié)果一覽

    PHP PDO fetch 模式各種參數(shù)的輸出結(jié)果一覽

    這篇文章主要介紹了PHP PDO fetch 模式各種參數(shù)的輸出結(jié)果一覽,本文目的是方便根據(jù)實(shí)際需求選擇不同的參數(shù),從而不用一個(gè)一個(gè)測試過去,需要的朋友可以參考下
    2015-01-01
  • 使用ThinkPHP框架(thinkphp8.0)創(chuàng)建定時(shí)任的操作步驟

    使用ThinkPHP框架(thinkphp8.0)創(chuàng)建定時(shí)任的操作步驟

    這篇文章給大家介紹了使用ThinkPHP框架(thinkphp8.0)創(chuàng)建定時(shí)任的操作步驟,文中通過代碼示例給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-01-01
  • 如何用PHP編寫簡單的api數(shù)據(jù)接口

    如何用PHP編寫簡單的api數(shù)據(jù)接口

    這篇文章主要介紹了如何用PHP編寫簡單的api數(shù)據(jù)接口,對數(shù)據(jù)接口感興趣的同學(xué),可以參考一下,并且親自試驗(yàn)一下
    2021-04-04
  • PHP 進(jìn)程鎖定問題分析研究

    PHP 進(jìn)程鎖定問題分析研究

    剛好,前幾天也寫了一個(gè) 進(jìn)程鎖定的類,這個(gè)類要比上面的文章里面提到的更加強(qiáng)大一寫。
    2009-11-11
  • PHP session有效期問題

    PHP session有效期問題

    PHP中的session有效期默認(rèn)是1440秒(24分鐘)【weiweiok 注:php5里默認(rèn)的是180分】,也就是說,客戶端超過24分鐘沒有刷新,當(dāng)前session就會(huì)失效。很明顯,這是不能滿足需要的。
    2009-04-04
  • 最新評論

    西乡县| 庄河市| 武陟县| 河间市| 鸡西市| 高密市| 遵义县| 武功县| 沁阳市| 西华县| 辽源市| 类乌齐县| 宁国市| 丰县| 汤原县| 南川市| 镇坪县| 武功县| 丽江市| 江永县| 长海县| 兰考县| 沭阳县| 青铜峡市| 南靖县| 汉川市| 格尔木市| 祁门县| 定边县| 县级市| 黄石市| 江口县| 灵川县| 台南县| 营口市| 固镇县| 会东县| 辉南县| 临武县| 呼和浩特市| 庆元县|