一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - PHP教程 - php設(shè)計(jì)模式之模板模式實(shí)例分析【星際爭霸游戲案例】

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

2020-06-06 15:46DavidHHuan PHP教程

這篇文章主要介紹了php設(shè)計(jì)模式之模板模式,基于星際爭霸游戲案例形式分析了php模板模式相關(guān)原理與使用技巧,需要的朋友可以參考下

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

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

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

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

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

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

模板模式模式示例:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<?php
  //進(jìn)化的框架類,它是個(gè)抽象類
  abstract class evolution
  {
    //框架方法,由它來實(shí)施各個(gè)步驟,用final禁止子類覆蓋
    final public function process($troop)
    {
      //生成一個(gè)蛋,參數(shù)為進(jìn)化的部隊(duì)
      $egg = $this->becomeEgg($troop);
 
      //等待蛋孵化,參數(shù)為蛋
      $this->waitEgg($egg);
 
      //孵化后產(chǎn)生新部隊(duì)
      return $this->becomeNew($egg);
    }
 
    //下面三個(gè)抽象方法,由具體子類來實(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)生成一個(gè)蛋
    public function becomeEgg($troop)
    {
      //銷毀飛龍,返回一個(gè)蛋的對(duì)象的代碼
    }
 
    //等待蛋孵化
    public function waitEgg($troop)
    {
      //等待幾十秒鐘的代碼
    }
 
    //孵化后產(chǎn)生新部隊(duì)
    public function becomeNew(($troop)
    {
      //銷毀蛋,返回一個(gè)天蟹
    }
  }
 
  //新建一個(gè)天蟹進(jìn)化的對(duì)象
  $e1 = new GuardianEvolution();
 
  //讓它調(diào)用父類的進(jìn)化框架函數(shù),自動(dòng)完成三個(gè)步驟
  $e1->process($sds);
 
?>

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

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

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

原文鏈接:https://www.cnblogs.com/davidhhuan/p/4248192.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日韩综合网 | 亚洲精品国产一区二区第一页 | a级精品九九九大片免费看 a级动漫 | 好紧好爽的午夜寂寞视频 | 亚洲欧美专区精品久久 | 俄罗斯一级毛片免费播放 | 婷婷色在线观看 | 狠狠色狠狠色综合日日小蛇 | 青青热久免费精品视频网站 | 国产黑丝一区 | 免费一区二区 | 极品久久 | 极品奶妈漫画 | 亚洲AV久久无码精品九九软件 | 欧美精品黑人巨大在线播放 | 精品无码乱码AV | 韩国三级理韩国三级理人伦 | 久久全国免费久久青青小草 | 欧美一卡2卡三卡4卡5卡免费观看 | 日韩中文字幕一区 | 亚洲精品国产成人中文 | 亚洲精品人成网在线播放影院 | 久久亚洲精品AV成人无码 | 青青草原国产一区二区 | 美女被狂揉下部羞羞动漫 | 亚洲国产成人综合 | 女同性互吃奶乳免费视频 | www.四虎影 | 久久99亚洲AV无码四区碰碰 | 欧美三级不卡视频 | 女人zooxx禽交 | 四虎影视在线永久免费观看 | 视频网站入口在线看 | 视频污版 | 乳女教师欲乱动漫无修版动画3d | 国产精品俺来也在线观看了 | 99久久99久久久精品齐齐鬼色 | 好大好硬好深好爽想要之黄蓉 | 青草国产在线视频 | 182免费在线观看 | 91天堂国产在线 在线播放 |