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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。