總體來說設計模式分為三大類:建立型模式、結構型模式、行為型模式,今天要說的時屬於建立型模式裡的單例模式。
單例模式通常用於在特定的情況下可以節省資源的消耗,使用較為普遍,例如同一頁面對資料庫的多次操作,不需要去new多次從而節省了資源。
而對於php,關鍵在於其中的「instanceof」,它用來檢測乙個變數是否是某個類的乙個例項,為了防止使用者去new例項,將「__construct」函式許可權設定為private。(如果需要防止使用者進行clon,也可以重寫「__clone」方法)
下面就上個簡單的demo:
<?php
/** 單例資料庫連線
*/class
dblink
//重寫clone防止使用者進行clone
public
function
__clone()
//由類的自身來進行例項化
public
static
function
getinstance()
return
self
::$_instance;}
public
function
connect()
mysql_query
("set names utf8");
mysql_select_db
($this
->
_dbconfig
['database'],
self
::$_dbconnect);
return
self
::$_dbconnect;}
}
寫好了dblink類後,我們就可以這樣呼叫:
$a
=dblink
::getinstance()
;try
catch
(exception$e)
{echo.$e
->
getmessage()
;
php單例模式連線資料庫封裝類
單例模式有三大原則 建構函式不能為public 有乙個儲存例項的靜態成員變數 擁有訪問這個例項的公共靜態方法 基於單例模式的php資料庫連線類 class db static public function getinstance return self instance public functi...
php單例模式連線資料庫封裝類
單例模式有三大原則 建構函式不能為public 有乙個儲存例項的靜態成員變數 擁有訪問這個例項的公共靜態方法 基於單例模式的php資料庫連線類 php view plain copy class db static public function getinstance return self in...
單例 封裝PHP 資料庫連線
class mysqldb 連線資料庫 private function connect this user,this pwd or die 資料庫連線失敗 設定字元編碼 private function setcharset this query sql 選擇資料庫 private functio...