單例模式是一種PHP中常用的設計模式。今天我們來簡單分析一下PHP中的單例模式到底是一個什麼玩意兒。
1.單例模式在PHP中的實例應用:
PHP中有一個重要的應用場景就是和數據庫打交道:在一個應用中會有大量的數據操作,正對數據庫句柄連接數據庫的行爲,可以減少大量new的操作。這樣就節省了內存和和資源的使用。
單例模式就是確保某個類只有一個實例。應用程序中只會有這一個類的實例存在。
2.關鍵詞:三私一公
單例類中擁有一個能保存類的實例的私有靜態成員變量和一個對應的能訪問到實例的公共靜態方法、還有一個__conle魔術方法。
2.1 3私:私有靜態成員變量,私有的構造函數,私有的__conle魔術方法。
2.2 1共:能夠訪問到的公共的靜態方法。我用PHP的代碼來解釋一下
<?php
//單例模式,一個類只能創建一個對象
class Single {
//定義一個靜態屬性來保存對象
private static $single;
//私有化構造方法
private function __construct( ) {
}
//私有化克隆方法
private function __clone() {
}
//1公 入口
public static function getInstance( ) {
if( self::$single ) {
//對象已經存在,返回原來對象
} else {
//對象不存在
self::$single = new Single( );
}
return self::$single;
}
}
$obj = Single::getInstance( );
var_dump( '<pre>', $obj);
3.單例模式的優缺點:
優點:
1.節約了系統資源。
2.是對全局變量的一種改進。
缺點:
1.難調試 2隱藏依賴關係 3無法用錯誤類型的數據複寫一個單例。
這是我在學習了單例模式以後做的一個小的總結。有什麼不對的地方還需要和大家多多交流。vx:fvalyl