国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

PHP常用設計模式之委托設計模式

2020-03-22 18:06:19
字體:
來源:轉載
供稿:網友
委托是對一個類的功能進行擴展和復用的方法。它的做法是:寫一個附加的類提供附加的功能,并使用原來的類的實例提供原有的功能。假設我們有一個 TeamLead 類,將其既定任務委托給一個關聯輔助對象 JuniorDeveloper 來完成:本來 TeamLead 處理 writeCode 方法,Usage 調用 TeamLead 的該方法,但現在 TeamLead 將 writeCode 的實現委托給 JuniorDeveloper 的 writeBadCode 來實現,但 Usage 并沒有感知在執行 writeBadCode 方法。設計了一個cd類,類中有mp3播放模式,和mp4播放模式
改進前,使用cd類的播放模式,需要在實例化的類中去判斷選擇什么方式的播放模式
改進后,播放模式當做一個參數傳入playList函數中,就自動能找到對應需要播放的方法。一,未改進前 php //使用委托模式之前,調用cd類,選擇cd播放模式是復雜的選擇過程 html' target='_blank'>class cd { protected $cdInfo = array(); public function addSong($song) { $this- cdInfo[$song] = $song; public function playMp3($song) { return $this- cdInfo[$song] . '.mp3'; public function playMp4($song) { return $this- cdInfo[$song] . '.mp4'; $oldCd = new cd; $oldCd- addSong("1"); $oldCd- addSong("2"); $oldCd- addSong("3"); $type = 'mp3'; if ($type == 'mp3') { $oldCd- playMp3(); } else { $oldCd- playMp4(); }二、通過委托模式,改進后的cd類namespace Tools;去除核心對象中的判決和復雜功能性//委托接口interface Delegate{public function playList($list,$song);//mp3處理類class mp3 implements Delegate{public function playList($list,$song){return $list[$song].'.mp3';//mp4處理類class mp4 implements Delegate{public function playList($list, $song)return $list[$song].'.mp4';class cdDelegate{protected $cdInfo = array();public function addSong($song){$this- cdInfo[$song] = $song;public function play($type,$song){$name = '/Tools//'.$type;$obj = new $name;return $obj- playList($this- cdInfo,$song);$newCd = new cdDelegate();$newCd- addSong("1");$newCd- addSong("2");$newCd- addSong("3");echo $newCd- play('mp3','1');//只要傳遞參數就能知道需要選擇何種播放模式以上內容給大家介紹了PHP委托設計模式實例詳解,希望對大家有所幫助。PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 信宜市| 濮阳市| 桂林市| 江达县| 晋中市| 子长县| 万山特区| 卫辉市| 平武县| 七台河市| 霍林郭勒市| 宿迁市| 麟游县| 遂宁市| 临高县| 塔河县| 黎城县| 高邑县| 安西县| 元谋县| 罗甸县| 平顶山市| 桂平市| 康平县| 珠海市| 米泉市| 临夏县| 哈密市| 康保县| 余姚市| 衡东县| 阜阳市| 云南省| 灵丘县| 革吉县| 布拖县| 长治县| 海安县| 建瓯市| 工布江达县| 鹿邑县|