单例模式
- 单例的三个要点:
1.某个类只能有一个实例
2.必须自动创建这个实例
3.必须自行向整个系统提供这个实例 - 从实现的角度出发有三点
1.单例模式的类只提供私有构造函数
2.类定义中含有一个该类的静态私有对象
3.该类提供了一个静态的共有的函数用于创建或获取它本身的静态私有对象
单例代码
class Single
{
//声明一个静态成员属性用来保存类实例的静态成员变量
static $link;
//private标记的构造方法
private function __construct(){
self::$link = myslqi_connect('localhost','root','12345678');
}
//单例方法,用于访问实例的公共的静态方法
public static function getInstance(){
if(!isset(self::$link)){
new self();
}
return self::$link;
}
//创建__clone方法防止对象被复制克隆
public function __clone(){
return self::$link;
}
}
$obj = Single::getInstance();
//将会报错
$obj2 = clone($obj);