PHP设计模式之组合模式定义与应用示例
网络编程 2021-07-04 23:05www.168986.cn编程入门
这篇文章主要介绍了PHP设计模式之组合模式定义与应用,结合实例形式详细分析了PHP组合模式基本原理、定义与使用方法,需要的朋友可以参考下
本文实例讲述了PHP设计模式之组合模式定义与应用。分享给大家供大家参考,具体如下
<?php / 组合模式 将对象组合成树形结构以表示"部分-整体"的层次结构,使得客户对单个对象和复合对象的使用具有一致性 / abstract class MenuComponent { public function add($ponent) { } public function remove($ponent) { } 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($ponent) { $this->_items[] = $ponent; } public function remove($ponent) { $key = array_search($ponent, $this->_items); if ($key !== false) unset($this->_items[$key]); } public function display() { echo "-- " . $this->_name . " --------- \r\n "; 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 . " \r\n "; } } 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(); } } // 实例一下 // 人 $item3 = new Item("baidu", ".baidu."); $item4 = new Item("google", ".google."); $item1 = new Item("163", ".163."); $item2 = new Item("sina", ".sina."); // 班级 $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(); ?>
运行结果
-- All Menu ---------
-- sub menu1 ---------
163#.163.
sina#.sina.
-- sub menu2 ---------
baidu#.baidu.
google#.google.
-- sub menu3 ---------
baidu#.baidu.
google#.google.
-- sub menu2 ---------
baidu#.baidu.
google#.google.
更多关于PHP相关内容感兴趣的读者可查看本站专题《》、《》、《》、《》、《》、《》及《》
希望本文所述对大家PHP程序设计有所帮助。
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程