1. 程式人生 > >php的單例模式

php的單例模式

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的單例模式