PHP設計模式-委託Delegation模式
在PHP委託設計模式(Delegation)中,有一個對象接受請求,同時將請求委託給另一個對象來處理。許多其他的模式,如狀態模式、策略模式、訪問者模式本質上就是委託模式的特殊形式。委託模式使得我們可以用聚合來替代繼承。
實際場景比如有一個PHP項目任務,團隊主管接受需求部門的請求,然後主管委託初級開發工程師去處理完成。PHP示例代碼如下:
class TeamLeader
{
protected $slave;
// 將初級開發者分配給主管安排任務
public function __construct(JuniorDeveloper $junior)
{
$this->slave = $junior;
}
// TeamLeader 委託 slave 去做苦逼編碼工作
public function writeCode()
{
return $this->slave->writeBadCode();
}
}
class JuniorDeveloper
{
public function writeBadCode()
{
return "某個初級開發人員開始寫代碼...";
}
}
// 客戶端調用
$teamLeader = new TeamLeader(new JuniorDeveloper());
echo $teamLeader->writeCode();
實際場景比如有一個PHP項目任務,團隊主管接受需求部門的請求,然後主管委託初級開發工程師去處理完成。PHP示例代碼如下:
class TeamLeader
{
protected $slave;
// 將初級開發者分配給主管安排任務
public function __construct(JuniorDeveloper $junior)
{
$this->slave = $junior;
}
// TeamLeader 委託 slave 去做苦逼編碼工作
public function writeCode()
{
return $this->slave->writeBadCode();
}
}
class JuniorDeveloper
{
public function writeBadCode()
{
return "某個初級開發人員開始寫代碼...";
}
}
// 客戶端調用
$teamLeader = new TeamLeader(new JuniorDeveloper());
echo $teamLeader->writeCode();
留言
張貼留言