php設計模式--單例模式

單例模式顧名思義:

    這個類只能實例化一次.不能被克隆.一般被用來處理數據庫操作等需要頻繁使用,但是多次實例化又很浪費內存的類.


下面是一個帶有註釋的實例:

    

<?php 

#單例模式

######################

class Single{

private static $instance; #定義私有靜態屬性,用來存放本類實例化後的對象.

private function __construct(){} #私有構造方法,防止new實例化操作.


public static function getInstance()

{

    if(!(self::$instance instanceof self)) 

                                                #instanceof又兩個用途

                                                # 1.判斷前面那個是否是後面的對象

                                                # 2.判斷前面的是否實現類後面的接口

                                                #這裏如果$instance屬性內部已經存儲了對象,那麼無需在實例化了

{

self::$instance=new self;

}

return self::$instance; #返回屬性自身,當然現在已經是對象了.

}


public function info()

{

echo "this is a test"; #測試方法.

}


public function __clone()#如果外部進行克隆那麼返回一個致命錯誤.

{

trigger_error('Clone is not allow!',E_USER_ERROR);

}

}

$e=Single::getInstance(); #調用靜態方法,這個方法也是單例模式的精髓.

$e->info();

 ?>


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章