單例模式確保某個類只有一個實例,而且自行實例化並向整個系統提供這個實例。
使用單例模式可以避免大量的new操作。因爲每一次new操作都會消耗系統和內存的資源。
私有的構造方法 (防止類外實例化)
私有的克隆方法 (防止通過克隆生成對象)
私有的靜態屬性 (保存類的實例)
公有的靜態方法 (調取這個類相當一個接口 )
class Pre
{
private static $props = array();
private static $instance;
//防止使用 new 創建多個實例
private function __construct()
{
}
public static function getIn()
{
if(empty(static::$instance)){
static::$instance = new Pre;
}
return static::$instance;
}
/**
* 防止 clone 多個實例
*/
private function __clone()
{
}
}
$res1 = Pre::getIn();
$res2 = Pre::getIn();
var_dump($res1);
var_dump($res2);