av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

php設(shè)計(jì)模式之職責(zé)鏈模式實(shí)例分析【星際爭(zhēng)霸游戲案例】

瀏覽:122日期:2022-09-11 08:06:55

本文實(shí)例講述了php設(shè)計(jì)模式之職責(zé)鏈模式。分享給大家供大家參考,具體如下:

星際的兵種屬性隨著對(duì)平衡性的調(diào)節(jié),會(huì)進(jìn)行修改。如果這樣的話,我們就要考慮減少一個(gè)事件和具體處理的關(guān)聯(lián)性。

比如一顆原子彈投下的瞬間,在殺傷范圍內(nèi)的部隊(duì)或者建筑都會(huì)減少血,但是隨著距離中心點(diǎn)的遠(yuǎn)近,受損程度是不同的,而且不同的兵種和建筑受損情況是不同的。

待解決的問題:原子彈投下的瞬間,將殺傷的處理分別交給殺傷范圍內(nèi)的部隊(duì)或者建筑自己的方法處理。

思路:建立一個(gè)接口,讓所有的部隊(duì)或者建筑實(shí)現(xiàn)。

職責(zé)鏈模式(Chain of Responsibility)示例:

<?php //被原子彈攻擊的接口 interface NuclearAttacked { //處理被原子彈攻擊的方法,參數(shù)為投放點(diǎn)的x和y坐標(biāo) public function NuclearAttacked($x, $y); } //人族的基地,實(shí)現(xiàn)被原子彈攻擊的接口,其他的內(nèi)容暫時(shí)不考慮 class CommandCenter implements NuclearAttacked { //處理被原子彈攻擊的方法,參數(shù)為投放點(diǎn)的x和y坐標(biāo) public function NuclearAttacked($x, $y) { //根據(jù)離原子彈中心的距離,定義減少的血,如果超出了剩余的血,就炸掉 } } //巡洋艦(俗稱大和),實(shí)現(xiàn)被原子彈攻擊的接口,其他的內(nèi)容暫時(shí)不考慮 class Battlecruiser implements NuclearAttacked { //處理被原子彈攻擊的方法,參數(shù)為投放點(diǎn)的x和y坐標(biāo) public function NuclearAttacked($x, $y) { //根據(jù)離原子彈中心的距離,定義減少的血,如果超出了剩余的血,就炸掉 } } //原子彈類 class Nuclear { //被原子彈攻擊的對(duì)象 public $attackedThings; //添加被原子彈攻擊的對(duì)象 public function addAttackedThings($thing) { //添加被原子彈攻擊的對(duì)象 $this->attackedThings[] = $thing; } //原子彈爆炸的方法,參數(shù)為投放點(diǎn)的x和y坐標(biāo) public function blast($x, $y) { //把爆炸的事情交給所有涉及的對(duì)象,讓他們自己處理 foreach ($this->attackedThings as $thing) {//把爆炸的事情交給所有涉及的對(duì)象,讓他們自己處理$thing->NuclearAttacked($x, $y); } } } //新建一個(gè)基地對(duì)象 $CommandCenter = new CommandCenter(); //新建一個(gè)巡洋艦對(duì)象 $Battlecruiser = new Battlecruiser(); //造了一顆原子彈 $Nuclear2 = new Nuclear(); //假設(shè)投放成功,那個(gè)瞬間一個(gè)基地對(duì)象和一個(gè)巡洋艦對(duì)象在殺傷范圍內(nèi) $Nuclear2->addAttackedThings($CommandCenter); $Nuclear2->addAttackedThings($Battlecruiser); //原子彈爆炸,這樣就把這個(gè)事件交給那些涉及的對(duì)象的處理方法,假設(shè)投放點(diǎn)的x和y坐標(biāo)是2353, 368 $Nuclear2->blast(2353, 368);?>

用途總結(jié):職責(zé)鏈模式可以將一個(gè)涉及到多個(gè)對(duì)象的事件的處理交給對(duì)象自己處理,減少關(guān)聯(lián)性。

實(shí)現(xiàn)總結(jié):需要一個(gè)處理事件的接口,然后讓所有的對(duì)象實(shí)現(xiàn)。

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《PHP數(shù)組(Array)操作技巧大全》、《PHP基本語(yǔ)法入門教程》、《PHP運(yùn)算與運(yùn)算符用法總結(jié)》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫(kù)操作入門教程》及《php常見數(shù)據(jù)庫(kù)操作技巧匯總》

希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。

標(biāo)簽: PHP
相關(guān)文章:
主站蜘蛛池模板: 欧美一区成人 | 精品乱码一区二区 | av手机在线播放 | 色综合网站 | 中文字幕一区在线 | 国产高清视频一区 | 成人自拍视频网站 | 精品视频在线免费观看 | 成人在线免费观看 | 国产精品日韩一区 | 99精品视频在线观看 | 国产精品一区二区在线免费观看 | 免费看a | 欧美在线观看一区 | 亚洲视频一区在线观看 | 范冰冰一级做a爰片久久毛片 | 激情综合五月天 | 欧美午夜精品久久久久久浪潮 | 欧美一级片中文字幕 | 97久久精品午夜一区二区 | 国产午夜久久久 | 玖玖免费 | 懂色av色香蕉一区二区蜜桃 | 国产精品自产拍 | 免费黄色在线观看 | 国产无套一区二区三区久久 | 久久99国产精品 | 黑人一级黄色大片 | 日韩a | 少妇午夜一级艳片欧美精品 | 国产91在线播放 | 国产97人人超碰caoprom | 欧美精品一区二区三区在线播放 | 精品欧美一区二区三区久久久 | 成人高清在线视频 | 欧美一级www片免费观看 | 欧美a在线看 | 欧美日韩亚洲系列 | 五月天综合影院 | www久久国产 | av官网在线 |