php設計模式--單例模式

單例模式顧名思義:php

    這個類只能實例化一次.不能被克隆.通常被用來處理數據庫操做等須要頻繁使用,可是屢次實例化又很浪費內存的類.數據庫


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

    

<?php 測試

#單例模式this

######################spa

class Single{對象

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

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


public static function getInstance()get

{

    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();

 ?>

相關文章
相關標籤/搜索