php的單例模式
阿新 • • 發佈:2017-06-20
code 單例模式 內部 class 資源管理 資源 log 限制 cti
單例模式:指的是一個對象的模式,指一個類只能創建一個對象。
既然限制一個類只能創建一個對象,就是說要關閉其他創建對象的途徑。
所以實現單例,必須滿足一下條件:
1.不讓克隆(私有克隆方法)
2.不讓創建對象(私有構造方法,不能在類外部使用new關鍵字創建對象)
3.在類中創建對象(靜態方法)
4.判斷對象是否存在,如果存在返回原對象,否則創建新對象
使用單例模式好處在於可以節省資源,比如Db類設計,比如window系統常見的資源管理器。
<?php class Single{ //定義一個屬性保存對象 private static $single; //私有構造方法private function __construct($name){ $this->name = $name; } //私有化克隆方法 private function __clone(){ } //靜態方法:讓類進入到類的內部進行實例化得到對象 public static function getInstance($name){ //判斷對象是否存在,如果存在返回原對象,否則創建新對象 if(!self::$single){ self::$single= new Single($name); } return self::$single; } } $single = Single::getInstance(‘libai‘); var_dump($single);$single = Single::getInstance(‘dufu‘); var_dump($single);
php的單例模式