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

首頁 > 編程 > PHP > 正文

php單例模式的講解(代碼示例)

2020-03-22 20:12:18
字體:
來源:轉載
供稿:網友
本篇文章給大家帶來的內容是關于php單例模式的講解(代碼示例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

單例模式是一種比較常用的設計模式,在很多框架中可以看到它的身影。通過單例模式可以確保類只有一個實例化,從而方便對實例個數的控制并節約系統資源。

 ?phpuse /Exception;html' target='_blank'>class Singleton * 對象實例 * @var object public static $instance; * 獲取實例化對象 public static function getInstance() if (!self::$instance instanceof self) { self::$instance = new self(); return self::$instance; * 禁止對象直接在外部實例 private function __construct(){} * 防止克隆操作 final public function __clone() throw new Exception( Clone is not allowed ! }

一個系統中可能會多次使用到單例模式,為了更加方便的創建,可以試著建立一個通用的抽象:

// SingletonFacotry.php ?phpuse /Exception;abstract class SingletonFacotry * 對象實例數組 * @var array protected static $instance = []; * 獲取實例化對象 public static function getInstance() $callClass = static::getInstanceAccessor(); if (!array_key_exists($callClass, self::$instance)) { self::$instance[$callClass] = new $callClass(); return self::$instance[$callClass]; abstract protected static function getInstanceAccessor(); * 禁止對象直接在外部實例 protected function __construct(){}  * 防止克隆操作 final public function __clone() throw new Exception( Clone is not allowed ! }
// A.php  ?phpclass A extends SingletonFactory public $num = 0; protected static function getInstanceAccessor() return A::class;$obj1 = A::getInstance();$obj1- num++;var_dump($obj1- num); // 1$obj2 = A::getInstance();$obj2- num++;var_dump($obj2- num); // 2

以上就是php單例模式的講解(代碼示例)的詳細內容,PHP教程

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 民勤县| 惠水县| 汝南县| 乾安县| 平乐县| 长海县| 恭城| 南安市| 教育| 唐海县| 浦江县| 和顺县| 自治县| 洞口县| 昌乐县| 罗田县| 芒康县| 防城港市| 育儿| 于都县| 越西县| 南宫市| 专栏| 丘北县| 墨江| 定远县| 瑞金市| 梁山县| 东山县| 常山县| 临泽县| 五河县| 宁乡县| 伊金霍洛旗| 景宁| 磐安县| 高安市| 磐安县| 松阳县| 浦县| 固始县|