亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

汕尾市| 宜黄县| 临清市| 东阳市| 宣威市| 临海市| 临城县| 天津市| 搜索| 东乡| 桂阳县| 东辽县| 托里县| 郴州市| 屏边| 仪征市| 广河县| 兰溪市| 新民市| 深圳市| 黄冈市| 贡嘎县| 庆阳市| 高青县| 海丰县| 德州市| 常州市| 清丰县| 邵东县| 济宁市| 陆良县| 淄博市| 于都县| 望奎县| 彭水| 乃东县| 阜阳市| 辽阳市| 桓仁| 台州市| 思茅市|