中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在php中應用職責鏈模式

發布時間:2021-06-07 17:43:08 來源:億速云 閱讀:116 作者:Leah 欄目:開發技術

怎么在php中應用職責鏈模式?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

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

思路:建立一個接口,讓所有的部隊或者建筑實現。

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

<?php
  //被原子彈攻擊的接口
  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問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

密云县| 宽甸| 旬阳县| 乌兰察布市| 静安区| 曲水县| 万宁市| 瓦房店市| 称多县| 泗水县| 革吉县| 农安县| 长沙市| 哈巴河县| 确山县| 营山县| 三穗县| 肃南| 绥德县| 苗栗市| 麻栗坡县| 鲜城| 嵩明县| 会同县| 寻甸| 正阳县| 辽阳县| 彰武县| 昭通市| 尉氏县| 江川县| 靖宇县| 镇远县| 海兴县| 丹江口市| 灵丘县| 梁山县| 沅江市| 昭苏县| 廊坊市| 连云港市|