单例模式
保证一个类仅有一个实例,并提供一个访问它的全局访问点。
模式特点
1、 一个类只能有一个实例;
2、 它必须自行创建这个实例;
3、 它必须自行向整个系统提供这个实例;
结构图
PHP代码实现
<?php
/**
* 懒汉式单例模式
*/
class Singleton
{
private static $instance;
private function __construct(){
}
public static function GetInstance(){
if(self::$instance==null){
self::$instance=new Singleton();
}
return self::$instance;
}
}
$a1=Singleton::GetInstance();
$a2=Singleton::GetInstance();
if ($a1===$a2){
var_dump('两个对象是相同的实例');
}
运行结果
string '两个对象是相同的实例' (length=30)