您现在的位置是:网站首页> 编程资料编程资料
php设计模式之职责链模式实例分析【星际争霸游戏案例】_php实例_
2023-05-25
267人已围观
简介 php设计模式之职责链模式实例分析【星际争霸游戏案例】_php实例_
本文实例讲述了php设计模式之职责链模式。分享给大家供大家参考,具体如下:
星际的兵种属性随着对平衡性的调节,会进行修改。如果这样的话,我们就要考虑减少一个事件和具体处理的关联性。
比如一颗原子弹投下的瞬间,在杀伤范围内的部队或者建筑都会减少血,但是随着距离中心点的远近,受损程度是不同的,而且不同的兵种和建筑受损情况是不同的。
待解决的问题:原子弹投下的瞬间,将杀伤的处理分别交给杀伤范围内的部队或者建筑自己的方法处理。
思路:建立一个接口,让所有的部队或者建筑实现。
职责链模式(Chain of Responsibility)示例:
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面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
您可能感兴趣的文章:
相关内容
- php设计模式之组合模式实例详解【星际争霸游戏案例】_php实例_
- PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)_php实例_
- CentOS7系统搭建LAMP及更新PHP版本操作详解_php技巧_
- Centos7安装swoole扩展操作示例_php技巧_
- PHP开发api接口安全验证操作实例详解_php技巧_
- PHP使用PhpSpreadsheet操作Excel实例详解_php技巧_
- php中加密解密DES类的简单使用方法示例_php技巧_
- TP5框架使用QueryList采集框架爬小说操作示例_php实例_
- PHP实现基本留言板功能原理与步骤详解_php技巧_
- php设计模式之策略模式实例分析【星际争霸游戏案例】_php实例_
