初识PHP设计模式--组合模式

 组合器(Composite)模式,属于设计模式中的结构型模式之一,主要用途就是把多个对象组合成一个树状的结构来表示“整体—部分”的关系。
 举例说明:我们用树状图来表示 江苏省->南京市->秦淮区和建邺区。
 其中江苏省为一级,南京市属于江苏省作为二级,而建邺区和秦淮区并列属于南京市属于三级。
 就得到如图结构:


-->江苏省          1级
-->-->南京市       2级
-->-->-->秦淮区    3级
-->-->-->建邺区    3级

 而组合器模式的作用就是,客户端通过一个相同的方法将对象进行组合并且区分出主从级别,提高灵活性和扩展性。

name = $name;
   }
   abstract function Add(IComposite $place);

   abstract function Display($level);
}

/** 组合器类 供客户端调用
 *  Composite         
 */
Class Composite extends IComposite
{
   private $places = array();

   function __construct($name)
   { 
   	  parent::__construct($name);
   }

   function Add(IComposite $place)
   {
      $this->places[] = $place;
   }

/** 显示方法
 *  Display 
 *  $level 级别 默认江苏省为 1级      
 */
   function Display($level = "1")
   {
      $pre = "";

      for ($i=0; $i < $level; $i++) { 
          $pre.= "-->";
      }
      $pre.=$this->name."
"; echo $pre; foreach ($this->places as $v) { // 往后南京市 级别加1 秦淮区在南京市基础上再加1 $v->display($level+1); } } }
Add($nanjing);

// 把秦淮区和建邺区添加到南京市下
$nanjing->Add($qinhuai);
$nanjing->Add($jianye);

$jiangsu->Display(); // 显示



你可能感兴趣的:(学习笔记)