作为一种常用的设计模式,单例模式被广泛的使用。那么如何设计一个单例才是最好的呢?
通常我们会这么写,网上能搜到的例子也大部分是这样:
$a = a::getinstance();
$b = b::getinstance();
var_dump($a === $b);
$a = a::getinstance();
$b = b::getinstance();
var_dump($a === $b);
class c
{
protected static $_instance = null;
protected function __construct()
{
}
protected function __clone()
{
//disallow clone
}
public function getinstance()
{
if (static::$_instance === null) {
static::$_instance = new static;
}
return static::$_instance;
}
}
class d extends c
{
protected static $_instance = null;
}
$c = c::getinstance();
$d = d::getinstance();
var_dump($c === $d);
需要提醒的是,php中单例模式虽然没有像java一样的线程安全问题,但是对于有状态的类,还是要小心的使用单例模式。单例模式的类会伴随php运行的整个生命周期,对于内存也是一种开销。
如对本文有疑问, 点击进行留言回复!!
[ACTF2020 新生赛]Include 1【文件包含】【读取代码】
算法题解 - 牛客编程巅峰赛S1第6场 - 黄金&钻石&王者组
推荐一个程序员必备网站之一:Dev Hints ,非常实用!
网友评论