版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_21441663/article/details/80964325
保证一个类仅有一个实例,并且提供一个访问它的全局访问点 单例模式有三个特点:
- 一个类只有一个实例
- 它必须自行创建这个实例
- 必须自行向整个系统提供这个实例
/**
* 简易单列类.
*
* Class singleton
*/
class Singleton {
/**
* 定义一个储存实例的变量.
*
* @var null
*/
static private $instance = null;
/**
* 构造方法定义成私有防止外部直接new.
*
* singleton constructor.
*/
private function __construct()
{
}
/**
* 暴露接口外部直接调用.
*
* @author: hh
* @return null|singleton
*/
public static function getInstance()
{
if (self::$instance === null) {
self::$instance = new self();
}
return self::$instance;
}
/**
* php魔术方法 防止克隆.
*
* @author: hh
*/
public function __clone(){
die('禁止克隆');
}
public function test()
{
echo 'This is singleton class.';
}
}
// 调用
$singleton = Singleton::getInstance();
$singleton->test();