PHP设计模式之组合模式定义与应用示例
本文实例讲述了PHP设计模式之组合模式定义与应用。分享给大家供大家参考,具体如下:
_name=$name;
}
publicfunctionadd($component)
{
$this->_items[]=$component;
}
publicfunctionremove($component)
{
$key=array_search($component,$this->_items);
if($key!==false)unset($this->_items[$key]);
}
publicfunctiondisplay()
{
echo"--".$this->_name."---------\r\n";
foreach($this->_itemsas$item){
$item->display();
}
}
}
classItemextendsMenuComponent
{
private$_name=null;
private$_url=null;
publicfunction__construct($name,$url)
{
$this->_name=$name;
$this->_url=$url;
}
publicfunctiondisplay()
{
echo$this->_name."#".$this->_url."\r\n";
}
}
classClient
{
private$_menu=null;
publicfunction__construct($menu)
{
$this->_menu=$menu;
}
publicfunctionsetMenu($menu)
{
$this->_menu=$menu;
}
publicfunctiondisplayMenu()
{
$this->_menu->display();
}
}
//实例一下
//人
$item3=newItem("baidu","www.baidu.com");
$item4=newItem("google","www.google.com");
$item1=newItem("163","www.163.com");
$item2=newItem("sina","www.sina.com");
//班级
$subMenu1=newMenu("submenu1");
$subMenu1->add($item1);
$subMenu1->add($item2);
$subMenu2=newMenu("submenu2");
$subMenu2->add($item3);
$subMenu2->add($item4);
$subMenu3=newMenu("submenu3");
$subMenu3->add($item3);
$subMenu3->add($item4);
//所有班级
$allMenu=newMenu("AllMenu");
$allMenu->add($subMenu1);
$allMenu->add($subMenu2);
$allMenu->add($subMenu3);
//打印所有班级
$objClient=newClient($allMenu);
$objClient->displayMenu();
//打印第2班级
$objClient->setMenu($subMenu2);
$objClient->displayMenu();
?>
运行结果:
--AllMenu---------
--submenu1---------
163#www.163.com
sina#www.sina.com
--submenu2---------
baidu#www.baidu.com
google#www.google.com
--submenu3---------
baidu#www.baidu.com
google#www.google.com
--submenu2---------
baidu#www.baidu.com
google#www.google.com
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。