gpt4 book ai didi

php设计模式 Composite (组合模式)

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 24 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章php设计模式 Composite (组合模式)由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

代码如下

<?php  /**  * 组合模式  *  * 将对象组合成树形结构以表示"部分-整体"的层次结构,使得客户对单个对象和复合对象的使用具有一致性  */  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();  }  }  // 实例一下  // 创建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();  。

最后此篇关于php设计模式 Composite (组合模式)的文章就讲到这里了,如果你想了解更多关于php设计模式 Composite (组合模式)的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com