亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時(shí)間:2020年03月27日 08:45:11   作者:DavidHHuan  
這篇文章主要介紹了php設(shè)計(jì)模式之職責(zé)鏈模式,結(jié)合星際爭霸游戲案例形式分析了php職責(zé)鏈模式相關(guān)概念、原理、用法及操作注意事項(xiàng),需要的朋友可以參考下

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

星際的兵種屬性隨著對平衡性的調(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 
  {
    //被原子彈攻擊的對象
    public $attackedThings;

    //添加被原子彈攻擊的對象
    public function addAttackedThings($thing)
    {
      //添加被原子彈攻擊的對象
      $this->attackedThings[] = $thing;
    }

    //原子彈爆炸的方法,參數(shù)為投放點(diǎn)的x和y坐標(biāo)
    public function blast($x, $y)
    {
      //把爆炸的事情交給所有涉及的對象,讓他們自己處理
      foreach ($this->attackedThings as $thing)
      {
        //把爆炸的事情交給所有涉及的對象,讓他們自己處理
        $thing->NuclearAttacked($x, $y);
      }
    }
  }

  //新建一個(gè)基地對象
  $CommandCenter = new CommandCenter();

  //新建一個(gè)巡洋艦對象
  $Battlecruiser = new Battlecruiser();

  //造了一顆原子彈
  $Nuclear2 = new Nuclear();

  //假設(shè)投放成功,那個(gè)瞬間一個(gè)基地對象和一個(gè)巡洋艦對象在殺傷范圍內(nèi)
  $Nuclear2->addAttackedThings($CommandCenter);
  $Nuclear2->addAttackedThings($Battlecruiser);

  //原子彈爆炸,這樣就把這個(gè)事件交給那些涉及的對象的處理方法,假設(shè)投放點(diǎn)的x和y坐標(biāo)是2353, 368
  $Nuclear2->blast(2353, 368);
?>

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

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

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

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

相關(guān)文章

  • 可定制的PHP縮略圖生成程式(需要GD庫支持)

    可定制的PHP縮略圖生成程式(需要GD庫支持)

    可定制的PHP縮略圖生成程式(需要GD庫支持)...
    2007-03-03
  • 解決Laravel使用驗(yàn)證時(shí)跳轉(zhuǎn)到首頁的問題

    解決Laravel使用驗(yàn)證時(shí)跳轉(zhuǎn)到首頁的問題

    當(dāng)我們在使用validate等方法進(jìn)行驗(yàn)證時(shí),如果是錯(cuò)誤,則會(huì)返回首頁,那么這個(gè)跳轉(zhuǎn)到首頁如何實(shí)現(xiàn)的呢?今天小編給大家分享一篇教程關(guān)于Laravel使用驗(yàn)證時(shí)跳轉(zhuǎn)到首頁的解決辦法,一起看看吧
    2021-10-10
  • 如何把php5.3版本升級到php5.4或者php5.5

    如何把php5.3版本升級到php5.4或者php5.5

    這篇文章主要介紹了如何把php5.3升級到php5.4或者php5.5,需要的朋友可以參考下
    2015-07-07
  • php實(shí)現(xiàn)天干地支計(jì)算器示例

    php實(shí)現(xiàn)天干地支計(jì)算器示例

    天干地支,簡稱“干支”,這是中國古代的歷法,下面使用php實(shí)現(xiàn)一個(gè)天干地支計(jì)算器,需要的朋友可以參考下
    2014-03-03
  • Yii2框架引用bootstrap中日期插件yii2-date-picker的方法

    Yii2框架引用bootstrap中日期插件yii2-date-picker的方法

    這篇文章主要介紹了Yii2框架引用bootstrap中日期插件yii2-date-picker的方法,實(shí)例分析了yii2-date-picker插件的具體使用步驟與相關(guān)技巧,需要的朋友可以參考下
    2016-01-01
  • jQuery+Ajax+PHP“喜歡”評級功能實(shí)現(xiàn)代碼

    jQuery+Ajax+PHP“喜歡”評級功能實(shí)現(xiàn)代碼

    本文基于jQuery,通過PHP與mysql實(shí)現(xiàn)了一個(gè)評級功能,是一個(gè)簡單的非常好的ajax應(yīng)用實(shí)例,需要的朋友可以參考下
    2015-10-10
  • 提高php編程效率技巧

    提高php編程效率技巧

    php是全球范圍應(yīng)用范圍最廣的開發(fā)語言,php和linux、apache、mysql緊密結(jié)合,形成了lamp的開源黃金搭檔。因其php具有開發(fā)周期短、免費(fèi)、穩(wěn)定、安全、簡單易學(xué)、跨平臺等優(yōu)勢,被評為最受歡迎的編程語言,下面小編給大家整理了提高php編程效率的20個(gè)要點(diǎn),需要的可以參考
    2015-08-08
  • destoon整合ucenter后注冊頁面不跳轉(zhuǎn)的解決方法

    destoon整合ucenter后注冊頁面不跳轉(zhuǎn)的解決方法

    這篇文章主要介紹了destoon整合ucenter后注冊頁面不跳轉(zhuǎn)的解決方法,需要的朋友可以參考下
    2014-06-06
  • phpstorm激活碼2020附使用詳細(xì)教程

    phpstorm激活碼2020附使用詳細(xì)教程

    這篇文章主要介紹了phpstorm激活碼2020附使用詳細(xì)教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • PHP遠(yuǎn)程采集圖片詳細(xì)教程

    PHP遠(yuǎn)程采集圖片詳細(xì)教程

    這篇文章主要介紹了PHP遠(yuǎn)程采集圖片詳細(xì)教程,一步一步實(shí)現(xiàn)圖片的采集功能,簡單的入門教程,需要的朋友可以參考下
    2014-07-07

最新評論