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

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

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

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

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

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

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

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

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

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

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

組合(Composite)模式示例:

<?php //抽象地圖類 abstract class abstractMap { //地圖或地圖包的名稱 public $name; //構造方法 public function __construct($name) { $this->name = $name; } //地圖或地圖包的名稱,地圖對象沒有子對象,所以用空函數,直接繼承 public function getChildren(){} //添加子對象,地圖對象沒有子對象,所以用空函數,直接繼承 public function addChild(abstractMap $child){} //顯示地圖或地圖包的名稱 public function showMapName() { echo $this->name.”<br>”; } //顯示子對象,地圖對象沒有子對象,所以用空函數,直接繼承 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){ //調用地圖或包的名稱 $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();?>

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

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

更多關于PHP相關內容感興趣的讀者可查看本站專題:《php面向對象程序設計入門教程》、《PHP數組(Array)操作技巧大全》、《PHP基本語法入門教程》、《PHP運算與運算符用法總結》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》

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

標簽: PHP
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
激情中国色综合| 综合一区在线| 欧美日韩一区二区综合 | 国产精品一区亚洲| 国产精品99在线观看| 91精品久久久久久久久久不卡| 一区在线观看| 国产伦精品一区二区三区视频| 日韩成人三级| 亚洲精品日本| 福利一区二区三区视频在线观看| 欧美va天堂| 日本aⅴ亚洲精品中文乱码| 国产成人久久精品一区二区三区| 亚洲激情国产| 国产亚洲久久| 蜜桃国内精品久久久久软件9| 日韩视频1区| 精品久久97| 99xxxx成人网| 精品一区91| 免费看精品久久片| 国产精品xx| 四虎精品一区二区免费| 日韩一区二区中文| 亚洲aⅴ网站| caoporn视频在线| 亚洲欧美网站在线观看| 人在线成免费视频| 亚洲色图综合| 91看片一区| 久久国内精品自在自线400部| 久久网站免费观看| 国产亚洲久久| 另类亚洲自拍| 亚洲不卡系列| 国产精品自拍区| 精品一区毛片| 精品视频一区二区三区四区五区 | 国产区精品区| 欧美特黄视频| 久久影视三级福利片| 99视频一区| 激情国产在线| 欧美片第1页综合| 久久最新视频| 欧美.日韩.国产.一区.二区| 精品亚洲a∨| 日韩精品一区二区三区中文字幕| 999国产精品视频| 精品国产一区二| 欧美午夜三级| 美美哒免费高清在线观看视频一区二区| 久久久久久婷| 麻豆精品新av中文字幕| 日本一区二区中文字幕| 91精品一区国产高清在线gif| 国产精品一站二站| 久久国产精品亚洲77777| 午夜精品成人av| 国产精品久久| 天堂久久av| 日韩在线a电影| 91精品一区二区三区综合| 欧美aⅴ一区二区三区视频| 亚洲视频二区| 国产精品嫩草99av在线| 国产99亚洲| 日韩精品免费一区二区在线观看 | 国产成人免费| 久久亚洲黄色| 久久99精品久久久久久园产越南 | 日韩欧美精品一区二区综合视频| 亚洲精华国产欧美| 桃色一区二区| 久久青青视频| 国产成人免费精品| 麻豆中文一区二区| 国产午夜精品一区在线观看| 蜜桃传媒麻豆第一区在线观看| 亚洲国内欧美| 国产拍在线视频| 精品国产欧美日韩| 国产精品天堂蜜av在线播放| 日韩久久一区| 日产欧产美韩系列久久99| 亚洲一级大片| 蜜桃视频一区二区三区在线观看| 亚洲精品2区| 神马日本精品| 免费高潮视频95在线观看网站| 国产中文欧美日韩在线| 久久精品国产99国产| 国产精品扒开腿做爽爽爽软件| 91精品福利观看| 久久国产麻豆精品| 日韩高清二区| 国产欧美高清视频在线| 国产精品极品在线观看| 久久99精品久久久久久园产越南 | 国产精品99在线观看| 在线看片福利| 欧美日韩精品免费观看视完整| 午夜精品久久久久久久久久蜜桃| 国产亚洲一区二区手机在线观看 | 成人国产精品久久| 精品久久久久中文字幕小说| а√在线中文在线新版| 日韩欧美看国产| 99国产精品免费视频观看| 久久国产毛片| 黄色成人91| 一区二区三区国产在线| 日韩免费精品| 久久精品国产网站| 日产精品一区| 夜夜嗨网站十八久久| 亚洲精品护士| 国产乱论精品| 国产suv精品一区二区四区视频| 一区二区三区四区日本视频| 国产在线观看www| 激情久久中文字幕| 中文无码日韩欧| 国产免费av国片精品草莓男男| 久久精品日韩欧美| 久久久人人人| 香蕉精品999视频一区二区| 免费在线观看日韩欧美| 欧美亚洲tv| av中文字幕在线观看第一页| 亚洲视频综合| 亚洲欧洲日韩精品在线| 欧美a一区二区| 亚洲国产不卡| 日韩激情精品| 精品国产中文字幕第一页| 精品丝袜在线| 日韩影院免费视频| 欧美91在线| 精品91久久久久| 久久国产婷婷国产香蕉| 人在线成免费视频| 男女性色大片免费观看一区二区| 国产精品多人| 欧美日韩中文字幕一区二区三区| 亚洲毛片在线| 国产精品久久久久久久免费观看 | 国产一区二区三区91| 在线观看免费一区二区| 日韩av三区| 日韩在线观看一区| 日韩不卡免费视频| 91精品韩国| 日韩三级久久| 一本大道色婷婷在线| 亚洲一二av| 在线天堂资源www在线污| 蜜桃久久av一区| 日韩a一区二区| 亚洲日本国产| 亚洲成人va| 日韩成人在线看| 亚洲第一精品影视| 国产精选久久| 香蕉久久久久久久av网站| 国产一区二区亚洲| 亚洲视频电影在线| 日韩精品免费一区二区三区| 91嫩草精品| av亚洲在线观看| 麻豆精品久久| 中文字幕一区二区三区四区久久| 高清av不卡| 日韩福利在线观看| 国产一区二区高清| 日韩欧美一区二区三区在线视频 | 亚洲va久久| 欧洲激情综合| 麻豆国产在线| 国产精品久久亚洲不卡| 视频在线观看91| 99成人超碰| 精品国产一区二区三区2021| 亚洲综合中文| 激情综合网五月| 天堂а√在线最新版中文在线| 欧美日韩一区自拍| 日韩制服丝袜先锋影音| 91精品一区二区三区综合在线爱| 国产欧美亚洲一区| 亚洲人www| 黄色日韩在线| 久久国产主播| a国产在线视频| 精品伊人久久| 久久精品97| 日本在线视频一区二区| 好看不卡的中文字幕| 亚洲性色av|