职责链模式 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);

?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值