成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

php設計模式之組合模式實例詳解【星際爭霸游戲案例】

瀏覽:196日期:2022-09-11 08:09:10

本文實例講述了php設計模式之組合模式。分享給大家供大家參考,具體如下:

星際里面我們可以下載別人制作的地圖,或者自己做地圖玩。

我們在選擇玩哪張地圖的時候,可以看到游戲列出當前地圖包里面的地圖或地圖包的名字。

雖然地圖和地圖包是通過文件和文件夾區(qū)分的,但是我們開發(fā)的時候,總希望能使用對象來進行抽象。

那么對于地圖和地圖包這兩個相關的對象,我們能不能簡化他們之間的區(qū)別呢?

待解決的問題:盡量是調(diào)用這兩種對象的代碼一致,也就是說很多場合不必區(qū)分到底是地圖還是地圖包。

思路:我們做一個抽象類,讓地圖類和地圖包類繼承它,這樣類的很多方法的名稱一樣。

組合(Composite)模式示例:

<?php //抽象地圖類 abstract class abstractMap { //地圖或地圖包的名稱 public $name; //構造方法 public function __construct($name) { $this->name = $name; } //地圖或地圖包的名稱,地圖對象沒有子對象,所以用空函數(shù),直接繼承 public function getChildren(){} //添加子對象,地圖對象沒有子對象,所以用空函數(shù),直接繼承 public function addChild(abstractMap $child){} //顯示地圖或地圖包的名稱 public function showMapName() { echo $this->name.”<br>”; } //顯示子對象,地圖對象沒有子對象,所以用空函數(shù),直接繼承 public function showChildren(){} } //地圖類,繼承抽象地圖,這里面我們暫且使用抽象地圖的方法 class Map extends abstractMap { } //地圖包類,繼承抽象地圖,這里面我們就需要重載抽象地圖的方法 class MapBag extends abstractMap { //子對象的集合 public $childern; //添加子對象,強制用abstractMap對象,當然地圖和地圖包由于繼承了abstractMap,所以也是abstractMap對象 public function addChild(abstractMap $child) { $this->childern[] = $child; } //添加子對象 public function function showChildren() { if (count($this->childern)>0) {foreach ($this->childern as $child){ //調(diào)用地圖或包的名稱 $child->showMapName();} } } } //新建一個地圖包對象,假設文件夾名字為Allied,這個大家可以看看星際的地圖目錄,真實存在的 $map1 = new MapBag(‘Allied’); //新建一個地圖對象,假設文件名字為(2)Fire Walker(也是真實的) $map2 = new Map(‘(2)Fire Walker’); //接下去可以看到組合模式的特點和用處。 //假設后面的代碼需要操作兩個對象,而我們假設并不清楚這兩個對象誰是地圖,誰是地圖包 //給$map1添加一個它的子對象,是個地圖,(4)The Gardens $map1->addChild(new Map(‘(4)The Gardens’)); //展示它的子對象 $map1->showChildren(); //給$map2添加一個它的子對象,是個地圖,(2)Fire Walker,這里不會報錯,因為地圖繼承了一個空的添加方法 $map2->addChild(new Map(‘(2)Fire Walker’)); //展示它的子對象,也不會出錯,因為地圖繼承了一個空的展示方法 $map2->showChildren();?>

用途總結:組合模式可以對容器和物體(這里的地圖包和地圖)統(tǒng)一處理,其他代碼處理這些對象的時候,不必過于追究誰是容器,誰是物體。這里為了簡化說明,沒有深入探討,其實組合模式常常用于和迭代模式結合,比如我們可以用統(tǒng)一的方法(就像這里的showChildren方法),獲取地圖包下所有的地圖名(包括子目錄)

實現(xiàn)總結:用一個基類實現(xiàn)一些容器和物體共用的方法,比如上面的abstractMap,然后讓容器和物體類繼承基類。由于各自的特性不同,在容器和物體類中重載相應的方法,比如addChild方法。這樣對外就可以用統(tǒng)一的方法操作這兩種對象。

更多關于PHP相關內(nèi)容感興趣的讀者可查看本站專題:《php面向?qū)ο蟪绦蛟O計入門教程》、《PHP數(shù)組(Array)操作技巧大全》、《PHP基本語法入門教程》、《PHP運算與運算符用法總結》、《php字符串(string)用法總結》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》

希望本文所述對大家PHP程序設計有所幫助。

標簽: PHP
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
久久99精品一区二区三区三区| 亚洲国产日韩欧美| 国产综合欧美在线看| 日韩三级伦理片妻子的秘密按摩| 免费在线视频一区| 亚洲国产日韩美| 亚洲视频综合在线| 精品动漫3d一区二区三区免费版| 国产欧美日本一区二区三区| 99久久er热在这里只有精品66| 欧美电影免费观看高清完整版| 国产美女主播视频一区| 在线一区二区三区四区五区| 天天色天天爱天天射综合| 亚洲专区一区二区三区| 亚洲一区在线观看网站| 国产伦精品一区二区三区高清版| 最新国产成人在线观看| 在线播放不卡| 亚洲人亚洲人成电影网站色| 狠久久av成人天堂| 成人欧美一区二区三区白人| 激情视频一区二区| 国产精品久久久久久久第一福利| 激情久久婷婷| 亚洲女同ⅹxx女同tv| 一本一道久久综合狠狠老精东影业 | 精品一区二区三区影院在线午夜 | 国产精品全国免费观看高清 | 黑丝一区二区| 亚洲乱码国产乱码精品精小说| 夜夜嗨av一区二区三区网站四季av| 亚洲黄色片在线观看| 国产日韩欧美一区| 婷婷中文字幕一区三区| 色婷婷综合久久久中文字幕| 精彩视频一区二区三区| 制服丝袜在线91| 成人黄页在线观看| 国产三级精品三级| 伊人久久亚洲美女图片| 亚洲综合色在线| 久久一区中文字幕| 国产一区二区三区蝌蚪| 欧美变态tickling挠脚心| 欧美.www| 亚洲人成网站在线| 嫩草成人www欧美| 久久99精品一区二区三区| 欧美成人vps| 亚洲午夜91| 图片区小说区区亚洲影院| 91精品国产一区二区三区蜜臀| 97精品国产露脸对白| 亚洲女同一区二区| 欧美午夜免费电影| 91影院在线免费观看| 亚洲欧洲精品天堂一级| 久久综合导航| 成人黄色777网| 国产精品黄色在线观看| 裸体丰满少妇做受久久99精品| 国产一区二区三区黄视频| 久久久久亚洲蜜桃| 国产精品久久亚洲7777| 精品一区在线看| 国产日韩欧美一区二区三区乱码| 国产精品久久777777毛茸茸| 精品无人码麻豆乱码1区2区| 国产日韩av一区二区| 亚洲欧美春色| 国产精品白丝jk黑袜喷水| 日本一区免费视频| 久久精品30| 国产91对白在线观看九色| 综合色天天鬼久久鬼色| 欧美性生活久久| 99久久国产综合精品女不卡| 亚洲自拍欧美精品| 欧美疯狂做受xxxx富婆| 欧美日本一区二区高清播放视频| 亚洲综合久久av| 91超碰这里只有精品国产| 欧美午夜国产| 午夜精品123| 欧美tk—视频vk| 亚洲一区三区视频在线观看| 国产乱人伦偷精品视频不卡| 1024国产精品| 欧美日韩国产经典色站一区二区三区 | 国产精品第五页| 欧美午夜精品久久久| 欧美日韩综合久久| 日本视频在线一区| 亚洲国产日韩欧美一区二区三区| 色欧美片视频在线观看在线视频| 丁香六月久久综合狠狠色| 91在线国内视频| 欧美挠脚心视频网站| 免费在线观看视频一区| 日韩美女主播在线视频一区二区三区 | 激情久久一区| 精一区二区三区| 亚洲视频精选在线| 日韩欧美一级精品久久| 亚洲专区免费| 91浏览器在线视频| 日本成人在线网站| 国产精品美女久久久久av爽李琼| 欧美视频一二三区| 欧美破处大片在线视频| 美女mm1313爽爽久久久蜜臀| 国产精品丝袜久久久久久app| 欧美日韩亚洲国产综合| 91久久国产自产拍夜夜嗨| 粉嫩绯色av一区二区在线观看| 亚洲成人精品一区| 国产欧美日韩一区二区三区在线观看| 欧美午夜电影在线播放| 亚洲精品1区2区| thepron国产精品| 美国毛片一区二区| 日韩美女视频一区| 精品电影一区二区三区| 欧美三区在线观看| 国产欧美综合一区二区三区| 成人h动漫精品一区二区| 三级成人在线视频| 亚洲人精品一区| 久久一区二区视频| 欧美视频一区在线| 国产伦精品一区二区三区视频黑人 | 日本精品视频一区二区三区| 亚洲欧洲另类| 亚洲欧美伊人| 成人免费黄色在线| 日本亚洲一区二区| 亚洲精品中文字幕乱码三区| 久久久久久99精品| 91精品国产色综合久久| 久久中文在线| 一区二区高清视频| 欧美日韩三级电影在线| 国产很黄免费观看久久| 日韩成人dvd| 亚洲午夜在线视频| 国产精品毛片大码女人| 精品国产乱子伦一区| 欧美日韩黄色影视| 色婷婷久久久久swag精品 | 一区二区三区福利| 国产精品jizz在线观看美国 | 国产夜色精品一区二区av| 日韩精品一区二区三区老鸭窝| 欧美日韩国产一二三| 久久亚洲影院| 亚洲欧美日韩精品一区二区| 尤妮丝一区二区裸体视频| 91麻豆swag| 91丨九色丨国产丨porny| 成人激情黄色小说| 国产精品一区二区在线观看网站| 日本最新不卡在线| 首页亚洲欧美制服丝腿| 一区二区三区中文在线| 亚洲你懂的在线视频| 最新中文字幕一区二区三区| 中文字幕成人在线观看| 久久久九九九九| 久久先锋影音av| 精品99久久久久久| wwww国产精品欧美| 久久久久国产成人精品亚洲午夜| 久久综合精品国产一区二区三区| 精品国产乱码久久久久久老虎| 精品国产一二三| 久久蜜桃香蕉精品一区二区三区| 久久一留热品黄| 国产欧美精品一区aⅴ影院| 亚洲国产成人在线| 国产精品久久网站| 最新国产精品久久精品| 中文字幕在线不卡视频| 中文字幕一区二区三区色视频| 中文字幕一区二区三区乱码在线| 中文字幕亚洲精品在线观看| 亚洲日本在线a| 亚洲午夜一二三区视频| 手机精品视频在线观看| 青草av.久久免费一区| 美日韩一区二区| 国产一区二区在线看| 粉嫩av一区二区三区粉嫩| 99久久99久久精品免费观看| 午夜精品亚洲| 亚洲免费激情| 久久久精品五月天| 欧美性大战久久久久久久 | 亚洲一区二区伦理| 久久综合久久久|