单例模式,顾名思义就是只需要只有一个实例化对象, 在软件的设计中,单例模式是非常常用的。实例化一次,节省了大量的资源,而且单例模式在一定程度上可以替换类中引入全局变量而导致的bug。因为全局变量将类捆绑于特定的环境中。破坏了封装,这样的类很难被其他的应用程序所通用。使用单例模式则能够将类更好的组织,并且复用。
下面一起来看看php中单例模式的实现
<?php
class Singleton{
private static $instance = null;
//构造方法使用private,防止外部初始化
private function __construct(){
}
/** 不容许深度复制 */
private function __clone() {
}
public static function getInstance(){
if(null === self::$instance){
self::$instance = new self();
}
return self::$instance;
}
}
调用代码
$singleton = Singleton::getInstance();
$singleton2 = Singleton::getInstance();
var_dump($singleton === $singleton2);
在上面的调用代码中,在最后将打印true, 这样我们就简单的实现了单例模式。