php單例模式使用例項之資料庫連線

2021-06-21 05:58:26 字數 947 閱讀 1204

單例模式是指整個應用中類只有乙個物件例項的設計模式。

我用php大部分操作都是和各種資料庫打交道,包括mysql,redis,memcache等各種關係型和非關係型資料庫,所以乙個應用中會 存在大量連線資料庫的操作,如果不用單例模式,那每次都要new操作,但是每次new都會消耗大量的記憶體資源和系統資源,而且每次開啟和關閉資料庫連線都 是對資料庫的一種極大考驗和浪費。

<?php  

class mysqlconn

else

} }

缺陷:

每次資料庫連線都要new這個類,然後呼叫mysqlconnect方法,返回close掉,頻繁的new和資料庫連線關閉操作是非常消耗資源的

每次應該直接返回當前應用中已經開啟的資料庫連線控制代碼

//單例模式返回資料庫連線控制代碼  

$db = mysqlconn::singlemysqlconnect();  

<?php  

class singleton

/**

* description:私有化轉殖函式,防止外界轉殖物件

*/

private function __clone()

/**

* description:靜態方法,單例訪問統一入口

* @return singleton:返回應用中的唯一物件例項

*/

public static function getinstance()

return self::$instance;

} /**

* description:獲取資料庫的私有方法的連線控制代碼

*/

public function getdbconnect()

}

PHP單例模式連線資料庫

總體來說設計模式分為三大類 建立型模式 結構型模式 行為型模式,今天要說的時屬於建立型模式裡的單例模式。單例模式通常用於在特定的情況下可以節省資源的消耗,使用較為普遍,例如同一頁面對資料庫的多次操作,不需要去new多次從而節省了資源。而對於php,關鍵在於其中的 instanceof 它用來檢測乙個...

php設計模式之單例模式例項分析

單例模式 職責模式 簡單的說,乙個物件 在學習設計模式之前,需要比較了程式設計客棧解物件導向思想 只負責乙個特定的任務 單例類 1 建構函式需要標記為private 訪問控制 防止外部 使用new操作符建立物件 單例類不能在其他類中例項化,只能被其自身例項化 2 擁有乙個儲存類的例項的靜態成員變數 ...

php單例模式的例項

class config1 class config 轉殖方法私有化 禁止從外部轉殖物件 private function clone 因為用靜態屬性返回類例項,而只能在靜態方法使用靜態屬性 所以必須建立乙個靜態方法來生成當前類的唯一例項 public static function getinst...