濮阳杆衣贸易有限公司

主頁 > 知識庫 > php設(shè)計(jì)模式之模板模式實(shí)例分析【星際爭霸游戲案例】

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

熱門標(biāo)簽:邢臺400電話辦理 南寧電話外呼系統(tǒng)線路 重慶外呼電銷系統(tǒng)多少錢 咸陽電銷 正規(guī)電銷機(jī)器人系統(tǒng) 嘟嘟云外呼系統(tǒng) 濟(jì)源百應(yīng)電銷機(jī)器人聯(lián)系方式 南京3D地圖標(biāo)注 辦理400電話哪家好點(diǎn)

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

星際中的蟲族部隊(duì)有個特別的進(jìn)化兵種,就是飛龍,飛龍可以變成空中衛(wèi)士(天蟹)或者吞噬者(對空的)。另外還有口水兵可以進(jìn)化變成地刺。

這三個變化過程都是類似的:變化的原部隊(duì)消失,產(chǎn)生一個蛋或繭,孵化一會兒,蛋消失,新的部隊(duì)產(chǎn)生。

如果我們把這三個進(jìn)化獨(dú)立開,就會產(chǎn)生重復(fù)的代碼,冗余度增大了,所以我們要設(shè)法減少多余的代碼。

待解決的問題:要經(jīng)歷同樣的幾個步驟,只是每個步驟的細(xì)節(jié)會有不同。

思路:做一個進(jìn)化工程的框架,我們只要控制細(xì)節(jié)就可以了。

模板模式模式示例:

?php
  //進(jìn)化的框架類,它是個抽象類
  abstract class evolution 
  {
    //框架方法,由它來實(shí)施各個步驟,用final禁止子類覆蓋
    final public function process($troop)
    {
      //生成一個蛋,參數(shù)為進(jìn)化的部隊(duì)
      $egg = $this->becomeEgg($troop);

      //等待蛋孵化,參數(shù)為蛋
      $this->waitEgg($egg);

      //孵化后產(chǎn)生新部隊(duì)
      return $this->becomeNew($egg);
    }

    //下面三個抽象方法,由具體子類來實(shí)現(xiàn)
    abstract public function becomeEgg($troop);

    abstract public function waitEgg($egg);

    abstract public function becomeNew($egg);
  }

  //為了簡單說明,這里用空中衛(wèi)士(天蟹)的進(jìn)化類來演示,地刺等的處理方法類似

  //天蟹的進(jìn)化類繼承抽象進(jìn)化類
  class GuardianEvolution extends evolution 
  {
    //實(shí)現(xiàn)生成一個蛋
    public function becomeEgg($troop)
    {
      //銷毀飛龍,返回一個蛋的對象的代碼
    }

    //等待蛋孵化
    public function waitEgg($troop)
    {
      //等待幾十秒鐘的代碼
    }

    //孵化后產(chǎn)生新部隊(duì)
    public function becomeNew(($troop)
    {
      //銷毀蛋,返回一個天蟹
    }
  }

  //新建一個天蟹進(jìn)化的對象
  $e1 = new GuardianEvolution();

  //讓它調(diào)用父類的進(jìn)化框架函數(shù),自動完成三個步驟
  $e1->process($sds);

?>

用途總結(jié):模板模式可以將一系列的步驟自動化,同時又可以滿足不同的細(xì)節(jié)變化。

實(shí)現(xiàn)總結(jié):需要一個抽象類來包含框架函數(shù),讓具體的子類繼承它,并實(shí)現(xiàn)所有的步驟。使用的時候只要調(diào)用框架函數(shù)就自動完成了。

更多關(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ì)有所幫助。

您可能感興趣的文章:
  • php設(shè)計(jì)模式 Adapter(適配器模式)
  • PHP設(shè)計(jì)模式之適配器模式代碼實(shí)例
  • php設(shè)計(jì)模式之適配器模式原理、用法及注意事項(xiàng)詳解
  • php設(shè)計(jì)模式之迭代器模式實(shí)例分析【星際爭霸游戲案例】
  • php設(shè)計(jì)模式之觀察者模式實(shí)例詳解【星際爭霸游戲案例】
  • php設(shè)計(jì)模式之職責(zé)鏈模式實(shí)例分析【星際爭霸游戲案例】
  • php設(shè)計(jì)模式之正面模式實(shí)例分析【星際爭霸游戲案例】
  • php設(shè)計(jì)模式之原型模式分析【星際爭霸游戲案例】
  • php設(shè)計(jì)模式之代理模式分析【星際爭霸游戲案例】
  • php設(shè)計(jì)模式之中介者模式分析【星際爭霸游戲案例】
  • php設(shè)計(jì)模式之適配器模式實(shí)例分析【星際爭霸游戲案例】

標(biāo)簽:南通 通遼 黃山 河南 唐山 平頂山 武漢 隴南

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《php設(shè)計(jì)模式之模板模式實(shí)例分析【星際爭霸游戲案例】》,本文關(guān)鍵詞  php,設(shè)計(jì)模式,之,模板,模式,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《php設(shè)計(jì)模式之模板模式實(shí)例分析【星際爭霸游戲案例】》相關(guān)的同類信息!
  • 本頁收集關(guān)于php設(shè)計(jì)模式之模板模式實(shí)例分析【星際爭霸游戲案例】的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    邵武市| 井陉县| 英吉沙县| 高唐县| 东乌珠穆沁旗| 钦州市| 洪雅县| 剑阁县| 佳木斯市| 平遥县| 博白县| 青神县| 六安市| 合水县| 南召县| 西宁市| 全南县| 陈巴尔虎旗| 桂东县| 开阳县| 宁晋县| 邵阳县| 化州市| 本溪| 同心县| 应用必备| 阿拉善左旗| 徐汇区| 和政县| 大理市| 益阳市| 屏山县| 东辽县| 黑水县| 抚州市| 陵川县| 昌吉市| 济源市| 榆中县| 浙江省| 浦江县|