职责链模式 php,php Chain of Responsibility 职责链模式
//被*攻擊的接口
interface NuclearAttacked {
//處理被*攻擊的方法,參數為投放點的x和y坐標
public function NuclearAttacked($x, $y);
}
//人族的基地,實現被*攻擊的接口,其他的內容暫時不考慮
class CommandCenter implements NuclearAttacked {
//處理被*攻擊的方法,參數為投放點的x和y坐標
public function NuclearAttacked($x, $y)
{
//根據離*中心的距離,定義減少的血,如果超出了剩余的血,就炸掉
}
}
//巡洋艦(俗稱大和),實現被*攻擊的接口,其他的內容暫時不考慮
class Battlecruiser implements NuclearAttacked {
//處理被*攻擊的方法,參數為投放點的x和y坐標
public function NuclearAttacked($x, $y)
{
//根據離*中心的距離,定義減少的血,如果超出了剩余的血,就炸掉
}
}
//*類
class Nuclear {
//被*攻擊的對象
public $attackedThings;
//添加被*攻擊的對象
public function addAttackedThings($thing)
{
//添加被*攻擊的對象
$this->attackedThings[] = $thing;
}
//*爆炸的方法,參數為投放點的x和y坐標
public function blast($x, $y)
{
//把爆炸的事情交給所有涉及的對象,讓他們自己處理
foreach ($this->attackedThings as $thing)
{
//把爆炸的事情交給所有涉及的對象,讓他們自己處理
$thing->NuclearAttacked($x, $y);
}
}
}
//新建一個基地對象
$CommandCenter = new CommandCenter();
//新建一個巡洋艦對象
$Battlecruiser = new Battlecruiser();
//造了一顆*
$Nuclear2 = new Nuclear();
//假設投放成功,那個瞬間一個基地對象和一個巡洋艦對象在殺傷范圍內
$Nuclear2->addAttackedThings($CommandCenter);
$Nuclear2->addAttackedThings($Battlecruiser);
//*爆炸,這樣就把這個事件交給那些涉及的對象的處理方法,假設投放點的x和y坐標是2353, 368
$Nuclear2->blast(2353, 368);
?>
總結
以上是生活随笔為你收集整理的职责链模式 php,php Chain of Responsibility 职责链模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php bc高精度测试,php BC高精
- 下一篇: php 数组交集函数,PHP array