星际的兵种属性随着对平衡性的调节,会进行修改。如果这样的话,我们就要考虑减少一个事件和具体处理的关联性。
职责链模式(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); ?> |
代码如下
|
复制代码 |

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

禅工作室 13.0.1
功能强大的PHP集成开发环境

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器