您好,登錄后才能下訂單哦!
這篇文章主要介紹了PHP中工廠模式、單例模式與注冊樹模式的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
具體如下:
三種基本設計模式
1、工廠模式:工廠方法或者類生成對象,而不是在代碼中直接new
2、單例模式:使某個類的對象僅允許創建一個
3、注冊模式:全局共享和交換對象
工廠模式:
<?php namespace IMooc; class Factory { static function createDatabase() { $db = new Database(); return $db; } }
$db = IMooc\Factory::createDatabase();
工廠模式的好處是,避免Database這個類,在很多個php文件都進行new操作,如果Database這個類發生了一些變更(修改了名字或者參數),那這時候如果不工廠模就需要修改多出了,使用工廠模式,就只需要修改工廠方法即可。
單例模式:
<?php namespace IMooc; class Database { protected $db; private function __construct() { } // 獲取數據庫操作實例 static function getInstance() { if(self::$db){ return self::$db; }else{ self::$db = new self(); return self::$db; } } } // 無論調用多少次,只會創建一個實例 $db = IMooc\Database::getInstance(); $db = IMooc\Database::getInstance(); $db = IMooc\Database::getInstance(); $db = IMooc\Database::getInstance();
注冊樹模式:
<?php namespace IMooc; class Register { protected static $objects; static function set($alias, $object) { self::$objects[$alias] = $object; } static function get($name) { return self::$objects[$name]; } static function _unset($alias) { unset(self::$objects[$alias]); } } $db = \IMooc\Register::get('db1');
感謝你能夠認真閱讀完這篇文章,希望小編分享的“PHP中工廠模式、單例模式與注冊樹模式的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。