中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP設計模式(1)工廠模式

發布時間:2020-04-09 00:08:01 來源:網絡 閱讀:552 作者:shayang88 欄目:web開發

工廠模式 是一種類,它具有為您創建對象的某些方法。您可以使用工廠類創建對象,而不直接使用 new。這樣,如果您想要更改是所創建的對象類型,只需更改該工廠即可。使用該工廠的所有代碼會自動更改。

比方說我們在網站上給用戶制定一些任務讓用戶完成,不同的任務我們會創建不同的類,當用戶完成某個任務的時候,會給用戶一些對應的獎勵,這個時候如果我們任務的類型比較多,那么我們可以采用工廠模式:

<?php
//說明這里要引入對應的文件
class Task_Factory{
    //任務列表的類數組
    private $_arrClass = array();
    //定義一個私有的靜態變量,給生成實例的靜態方法使用
    private static $_obj = null;
    //初始化任務類數組,前面是key,對應真正的類名
    private function __construct(){
        //發新浪微博任務
        $this->addClass('sina_wb', 'Sinawb');
        //發騰訊微博任務
        $this->addClass('qq_wb',   'Qqwb');
        //互動任務
        $this->addClass('interact','Interact');
        //連續簽到任務
        $this->addClass('sign',    'Sign');
    }
    //創建類的動作,定義為靜態
    public static function factory($tClass){
        if (self::$_obj == null){
            self::$_obj =  new self();
        }
        if(!isset(self::$_obj->_arrClass[$tClass])){
            //如果類不存在,返回false
            return false;
        }else{
            //類存在則生成實例
            $strClassName = self::$_obj->_arrClass[$tClass];
        }
        $ret = new $strClassName();
        //這里Task_Base_Abstract是一個任務類的抽象類,定義了一些任務共有方法
        //比方說任務完成進度,做任務等方法
        if($ret instanceof Task_Base_Abstract){
            //確認實例對象生成,則返回實例
            return $ret;
        }else{
            //失敗則返回false
            return false;
        }
    }
                            
    //往數組里添加任務類,初始化時用
    private function addClass($name, $RealName){
        $this->_arrClass[$name] = $RealName;
    }
                            
}

這樣,當我們要使用一個類時,可以如下調用:

//參數為對應的類的key
$objTask = Task_Factory::factory('interact');


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

泰顺县| 柳州市| 东城区| 开封县| 三原县| 怀安县| 浮山县| 山阴县| 卓资县| 磴口县| 家居| 新干县| 崇阳县| 石狮市| 上饶县| 黎平县| 崇左市| 霸州市| 商城县| 亚东县| 芮城县| 汨罗市| 渭南市| 湖州市| 邵东县| 元朗区| 三门县| 乐清市| 三台县| 中阳县| 叶城县| 安乡县| 万荣县| 西充县| 七台河市| 建始县| 文水县| 伊宁县| 江口县| 都昌县| 博野县|