php—常見設計模式

來源:互聯網
上載者:User

標籤:特定   factor   mysq   use   nts   pac   ase   fence   get   

原廠模式
/** * Factory 方法或者類產生對象,而不是在代碼中直接new *  * 修改類名的時候,不需要每一個執行個體化語句都修改 * 只需要修改對應的Factory 方法 *  * Class Factory * @package regina */class Factory{    static function createDatabase(){        $db = Database::getInstance();        return $db;    }}
單例模式
/** * 單例模式,節省資源,一個類只能執行個體化一個對象 *  * 使某個類的對象僅允許建立一個 *  * 為了實現單例模式,要私人化建構函式和clone魔術方法 * Class Database * @package regina */class Database{        protected static $db;    private function __construct(){    }    private function __clone(){    }    static function getInstance(){        if (self::$db){            return self::$db;        }        self::$db = new Database();        return self::$db;    }}
註冊模式
/** * 把new出來的對象儲存在靜態數值中,以便全域共用 * 全域共用和交換對象 * Class Register * @package regina */class Register{    protected static $array;    static function set($name, $Obj){        echo ‘Register set run....‘;        self::$array[$name] = $Obj;    }    static function get($name){        echo ‘Register get run....‘;        return self::$array[$name];    }    function _unset($name){        echo ‘Register unset run....‘;        unset(self::$array[$name]);    }}
適配器模式
/** * 將各種截然不同的函數介面封裝成統一的API * Interface IDatabase * @package regina */interface IDatabase{    function connect($host, $username, $password, $dbname);    function query();    function close();}class Mysqli implements Database{    protected $conn;    function connect($host, $username, $password, $dbname){        echo ‘Mysqli connect run...‘;    }    function query(){        echo ‘Mysqli query run...‘;    }    function close(){        echo ‘Mysqli close run...‘;    }}class Mysql implements Database{    function connect($host, $username, $password, $dbname){        echo ‘Mysql connect run...‘;    }    function query(){        echo ‘Mysql query run...‘;    }    function close(){        echo ‘Mysql close run...‘;    }}
策略模式

將一組特定的行為和演算法封裝成類,以適應默寫內容相關的定義。

挖坑待填~~~~~

 

php—常見設計模式

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.