組合模式應用于遞歸結構的優化或分層數據結構的管理:

創新互聯是一家集網站建設,西秀企業網站建設,西秀品牌網站建設,網站定制,西秀網站建設報價,網絡營銷,網絡優化,西秀網站推廣為一體的創新建站企業,幫助傳統企業提升企業形象加強企業競爭力。可充分滿足這一群體相比中小企業更為豐富、高端、多元的互聯網需求。同時我們時刻保持專業、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們為更多的企業打造出實用型網站。
<?php
abstract class Compary
{
protected $name;
/* public function __construct($name)
{
$this->name=$name;
} */
abstract public function Add(Compary $compary);
abstract public function Move(Compary $compary);
abstract public function Display($level=0);
}
class SubCompary extends Compary
{
private $subcompary=array();
//protected $name;
public function __construct($name)
{
//parent::$name=$name;
$this->name=$name;
}
public function Add(Compary $compary)
{
if(!$compary)
{
return false;
}
$key=array_search($compary,$this->subcompary);
if($key===false)
{
$this->subcompary[]=$compary;
}
return true;
}
public function Move(Compary $compary)
{
if(!$compary)
{
return false;
}
$key=array_search($compary,$this->subcompary);
if($key!==false)
{
unset($this->subcompary[$key]);
}
return true;
}
public function Display($level=0)
{
//輸出本節點的名稱
if($this->name)
{
$pre='';
for($i=0;$i<$level;$i++)
{
$pre.='-';
}
echo $pre.$this->name.'<br/>';
}
//按層次輸出每個分層的節點的名稱
if(is_array($this->subcompary))
{
foreach($this->subcompary as $key => $value )
{
//遞歸輸出每層的節點名稱
//遞歸輸出每層的節點名稱
$value->Display($level+2);
}
}
else
{
}
}
}
class Department extends Compary
{
private $department=array();
//protected $name;
public function __construct($name)
{
//parent::$name=$name;
$this->name=$name;
}
public function Add(Compary $compary)
{
/* if(!$compary)
{
return false;
}
$key=array_search($compary,$this->dapartment);
if($key===false)
{
$this->dapartment[]=$compaty;
return true;
}
else
{
return false;
} */
echo '葉子節點不能增加節點!';
}
public function Move(Compary $compary)
{
/* if(!$compary)
{
return false;
}
$key=array_search($compary,$this->department);
if($key!==false)
{
unset($this->department[$key]);
return true;
}
else
{
return false;
} */
echo '葉子節點不能刪除節點!';
}
public function Display($level=0)
{
if(!$this->name)
{
return false;
}
$pre='';
for($i=0;$i<$level;$i++)
{
$pre.='-';
}
echo $pre.$this->name.'<br/>';
/* if(is_array($this->department))
{
foreach($this->department as $key => $value )
{
$value->Display($level+2);
}
}
else
{
return false;
} */
}
}
header('content-type:text/html;charset=utf-8');
$subcompary=new SubCompary('北京公司');
$subcompary->Add(new Department('總公司財務部'));
$subcompary->Add(new Department('總公司技術部'));
$shanghai=new SubCompary('上海分公司');
$shanghai->Add(new Department('上海分公司技術部'));
$shanghai->Add(new Department('上海分公司財務部'));
$subcompary->Add($shanghai);
$subcompary->Display(2);
?>
當前題目:php組合模式
文章鏈接:http://www.yijiale78.com/article36/ghdhpg.html
成都網站建設公司_創新互聯,為您提供網站內鏈、網頁設計公司、外貿網站建設、企業網站制作、網站營銷、響應式網站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯