日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

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

瀏覽:198日期:2022-09-10 18:47:22

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

星際的任務(wù)關(guān)一般會(huì)有這樣的設(shè)定:一開始電腦的農(nóng)民不采礦,如果戰(zhàn)斗打響,或者玩家造出第一個(gè)兵,電腦的農(nóng)民開始采礦。

我們自然會(huì)想到把電腦的農(nóng)民放到一個(gè)數(shù)組,然后一旦玩家造兵,或者戰(zhàn)斗打響,把這個(gè)數(shù)組循環(huán),讓里面的農(nóng)民采礦。

但問題出來了,由于每個(gè)任務(wù)的設(shè)定會(huì)有所不同,我們總希望任務(wù)的開發(fā)比較方便,而且容易修改(一旦發(fā)現(xiàn)bug)。

何況有些任務(wù)不是農(nóng)民采礦,而是電腦出兵攻擊玩家。

那么過多的固定細(xì)節(jié)(用數(shù)組存放)以及依賴細(xì)節(jié)(對數(shù)組循環(huán)),將使得代碼的關(guān)聯(lián)性變得很高。

待解決的問題:把循環(huán)處理的事務(wù)變的抽象。

思路:關(guān)鍵是對農(nóng)民的循環(huán),用數(shù)組處理只是一種方式,我們考慮抽象的數(shù)組,而不是具體的數(shù)組。

迭代器(Iterator)模式示例:

<?php //聚集接口,意思是所有電腦的農(nóng)民都聚集在這個(gè)類里面 interface IAggregate { //讓具體的聚集類實(shí)現(xiàn)的,獲取使用的迭代器的方法 public function createIterator(); } //具體的聚集類 class ConcreteAggregate implements IAggregate { //存放農(nóng)民的數(shù)組,注意可以不用數(shù)組來處理,看完所有的代碼就知道了 public $workers; //增加元素的方法,這里元素就是農(nóng)民 public function addElement($element) { $this->workers[] = $element; } //獲取元素的方法 public function getAt($index) { return $this->workers[$index]; } //獲取元素的數(shù)量的方法 public function getLength() { return count($this->workers); } //獲取迭代器的方法 public function createIterator() { return new ConcreteIterator($this); } } //迭代器接口,注意php5有個(gè)內(nèi)置的接口叫Iterator,所以這里我們改成IIterator interface IIterator { //是否元素循環(huán)完畢 public function hasNext(); //返回下一個(gè)元素,并將指針加1 public function next(); } //具體的迭代器類 class ConcreteIterator implements IIterator { //要迭代的集合 public $collection; //指針 public $index; //構(gòu)造函數(shù),確定迭代的集合,并將指針置零 public function __construct($collection) { $this->collection = $collection; $this->index = 0; } //是否元素循環(huán)完畢 public function hasNext() { if($this->index < $this->collection->getLength()) {return true; } else {return false; } } //返回下一個(gè)元素,并將指針加1 public function next() { $element = $this->collection->getAt($this->index); $this->index++; return $element; } } //初始化電腦的農(nóng)民的聚集對象 $farmerAggregate = new ConcreteAggregate(); //添加農(nóng)民,這里簡單的用字符串表示 $farmerAggregate->addElement(’SVC1’); $farmerAggregate->addElement(’SVC2’); //獲取迭代器 $iterator = $farmerAggregate->createIterator(); //將農(nóng)民聚集對象循環(huán) while ($iterator->hasNext()) { //獲取下一個(gè)農(nóng)民 $element = $iterator->next(); //我們簡單的輸出 echo $element; }?>

用途總結(jié):迭代器模式建立了類似數(shù)組的形式,從上面的代碼可以看到,如果要修改循環(huán)的處理,或者修改被循環(huán)的集合,都不必修改其它相關(guān)的代碼。

實(shí)現(xiàn)總結(jié):需要一個(gè)管理聚集的類,比如上面的ConcreteAggregate。另外需要迭代器類,比如上面的ConcreteIterator。然后把所有的操作,比如添加元素,獲取下一個(gè)元素,指針之類的數(shù)組方面的操作抽象出來,這樣其它的代碼只要使用方法,比如getLength(),而不是細(xì)節(jié)化的count()函數(shù),這樣即使不用數(shù)組存放農(nóng)民,也不需要改動(dòng)聚集類以外的代碼。

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

標(biāo)簽: PHP
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美日韩在线二区| 亚洲一级少妇| 日韩视频一区二区三区在线播放免费观看| 国产伦久视频在线观看| 成人台湾亚洲精品一区二区| 国产福利资源一区| 欧美1区二区| 国产一区丝袜| 欧美精选视频一区二区| 亚洲h色精品| aa国产精品| 亚洲精品乱码| 国产乱码精品一区二区三区亚洲人| 综合在线一区| 久久国际精品| 国产suv精品一区二区四区视频 | 婷婷亚洲五月| 亚洲欧美视频| 日本午夜精品一区二区三区电影| 国产精品久久亚洲不卡| 国产成人精选| 亚洲精品va| 日韩一区二区三区高清在线观看| 国产丝袜一区| 欧美日韩在线观看首页| 免费污视频在线一区| 999在线观看精品免费不卡网站| 99re国产精品| 国产伦理一区| 欧美日韩中文字幕一区二区三区| 免费成人av在线播放| 国产亚洲人成a在线v网站| 久久av资源| 99久久婷婷| 亚洲日本国产| 精品一区二区三区亚洲 | 亚洲欧美专区| 精品视频91| 亚洲韩日在线| 亚洲精品乱码日韩| 国产一区二区三区不卡视频网站 | 蜜臀久久久久久久| 国产精品国码视频| 久久一区二区中文字幕| 视频一区日韩| www.九色在线| 蜜臀a∨国产成人精品| 麻豆免费精品视频| 女人天堂亚洲aⅴ在线观看| 国产日韩欧美三级| 欧美成人亚洲| 国产精品视频一区二区三区 | 老牛国产精品一区的观看方式| 国产欧美一级| 香蕉精品视频在线观看| 国产精品亚洲欧美日韩一区在线 | 欧美日韩国产一区二区在线观看| 日本午夜大片a在线观看| 麻豆精品网站| 中文字幕高清在线播放| 综合国产精品| 日韩国产激情| 日韩精品国产精品| 成人久久一区| 国产精品巨作av| 国产精品毛片| 日韩电影在线视频| 日本91福利区| 亚洲激情精品| 国产精品99一区二区三区| 免费精品视频在线| 国产亚洲一区二区手机在线观看 | 动漫av一区| 日本中文字幕一区二区视频 | 在线亚洲免费| 亚洲女同av| 国产精品一线| 视频一区在线播放| www成人在线视频| 精品少妇一区| 国产日韩在线观看视频| 乱人伦精品视频在线观看| 新版的欧美在线视频| 久久不见久久见中文字幕免费| 免费人成在线不卡| 亚洲一级二级| 日韩国产欧美| 久久麻豆视频| 国产欧美日韩视频在线| 日韩视频一区二区三区在线播放免费观看 | 日韩高清二区| 欧美专区在线| 狠狠久久婷婷| 欧洲亚洲一区二区三区| 国产aa精品| 欧美精品成人| 国产欧美一区二区三区国产幕精品 | 欧美va天堂| 天堂av在线| 国内不卡的一区二区三区中文字幕| 欧美在线91| 午夜亚洲一区| 91精品一区二区三区综合| 欧美激情 亚洲a∨综合| 日韩精品视频中文字幕| 极品日韩av| 99久久九九| 亚洲二区免费| 久久久精品久久久久久96| 正在播放日韩精品| 国产一区二区三区四区大秀| 欧美黄色一区二区| 久久久久九九精品影院| 欧美精品99| 美女在线视频一区| 麻豆免费精品视频| 精品一区电影| 精品淫伦v久久水蜜桃| 久久伊人久久| 精品国产aⅴ| 久久香蕉网站| 国产aa精品| 国产高潮在线| 日韩在线中文| 日本免费久久| 国产成人精品三级高清久久91| 麻豆精品在线| 久久97视频| 成人国产精品久久| 成人国产精品久久| 麻豆网站免费在线观看| 亚洲伦乱视频| 免费毛片在线不卡| 亚洲激情不卡| 日韩影院在线观看| 日韩三级久久| 国产精品入口久久| 成人国产精品一区二区网站| 国产不卡一区| 久久精品免费一区二区三区| 欧美一区二区性| 日韩视频一区二区三区在线播放免费观看| 欧美成人亚洲| 爽爽淫人综合网网站| 在线一区视频观看| 成人片免费看| 久久精品动漫| 欧美日韩国产传媒| 爽好多水快深点欧美视频| 亚洲精品免费观看| 欧美在线看片| 久久精品国产99国产| 日韩电影在线视频| 蜜桃tv一区二区三区| 亚洲综合不卡| 亚洲一区二区免费在线观看| 亚洲精品激情| 国产精品亲子伦av一区二区三区| 久久中文字幕导航| 精品日韩视频| 亚洲一区二区三区高清不卡| 亚欧洲精品视频在线观看| 国产麻豆一区二区三区 | 给我免费播放日韩视频| 久久网站免费观看| 亚洲精品中文字幕99999| 欧美色综合网| 日韩精品诱惑一区?区三区| 91精品国产成人观看| 亚洲一区二区av| 精品伊人久久久| 国产精品免费看| 国产精品久久久亚洲一区| 日韩电影免费网站| 美美哒免费高清在线观看视频一区二区| 国产日韩一区| 国产伊人精品| 国产日产一区| 久久中文字幕二区| 欧美啪啪一区| 激情综合在线| 国产精品porn| 91久久黄色| 精品国产鲁一鲁****| av一区二区高清| 国产福利一区二区三区在线播放| 国产综合婷婷| 国产午夜一区| 午夜免费一区| 麻豆精品新av中文字幕| 女人天堂亚洲aⅴ在线观看| 国产免费久久| 男人天堂欧美日韩| 伊人久久视频| 久久国产乱子精品免费女| 欧美/亚洲一区| 鲁大师精品99久久久| 视频一区国产视频| 最新中文字幕在线播放| 免费成人在线视频观看|