单例模式顾名思义:php
这个类只能实例化一次.不能被克隆.通常被用来处理数据库操做等须要频繁使用,可是屡次实例化又很浪费内存的类.数据库
下面是一个带有注释的实例:
ide
<?php 测试
#单例模式this
######################spa
class Single{对象
private static $instance; #定义私有静态属性,用来存放本类实例化后的对象.接口
private function __construct(){} #私有构造方法,防止new实例化操做.内存
public static function getInstance()get
{
if(!(self::$instance instanceof self))
#instanceof又两个用途
# 1.判断前面那个是不是后面的对象
# 2.判断前面的是否实现类后面的接口
#这里若是$instance属性内部已经存储了对象,那么无需在实例化了
{
self::$instance=new self;
}
return self::$instance; #返回属性自身,固然如今已是对象了.
}
public function info()
{
echo "this is a test"; #测试方法.
}
public function __clone()#若是外部进行克隆那么返回一个致命错误.
{
trigger_error('Clone is not allow!',E_USER_ERROR);
}
}
$e=Single::getInstance(); #调用静态方法,这个方法也是单例模式的精髓.
$e->info();
?>