怎么在php中應(yīng)用職責(zé)鏈模式-創(chuàng)新互聯(lián)

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

創(chuàng)新互聯(lián)公司是一家集成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、網(wǎng)站頁(yè)面設(shè)計(jì)、網(wǎng)站優(yōu)化SEO優(yōu)化為一體的專業(yè)網(wǎng)站設(shè)計(jì)公司,已為成都等多地近百家企業(yè)提供網(wǎng)站建設(shè)服務(wù)。追求良好的瀏覽體驗(yàn),以探求精品塑造與理念升華,設(shè)計(jì)最適合用戶的網(wǎng)站頁(yè)面。 合作只是第一步,服務(wù)才是根本,我們始終堅(jiān)持講誠(chéng)信,負(fù)責(zé)任的原則,為您進(jìn)行細(xì)心、貼心、認(rèn)真的服務(wù),與眾多客戶在蓬勃發(fā)展的市場(chǎng)環(huá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)。

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,的支持。

網(wǎng)頁(yè)標(biāo)題:怎么在php中應(yīng)用職責(zé)鏈模式-創(chuàng)新互聯(lián)
URL地址:http://bm7419.com/article14/goige.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、建站公司、網(wǎng)頁(yè)設(shè)計(jì)公司、網(wǎng)站制作、網(wǎng)站內(nèi)鏈、網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司