单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。
为什么使用单例模式呢
使用单例模式可以避免大量的new操作。因为每一次new操作都会消耗系统和内存的资源。
**单例模式特点(三私一公)
私有的构造方法 (防止类外实例化)
私有的克隆方法 (防止通过克隆生成对象)
私有的静态属性 (保存类的实例)
公有的静态方法 (调取这个类相当一个接口 )**
<?php
/*
*describe:单例模式
*/
header("content-type:text/html;charset=utf-8");
//final 修饰类 不可被继承 最终的类
final class Single{
//$self 静态私有变量 实例化后赋值
static private $self = NULL;
private $num = 0;
private function __construct(){
$this->num += 1;
echo "实例化成功<br/>";
}
//防止被克隆
private function __clone(){
die("实例化失败");
}
//静态公有接口
static public function getInstanceof(){
//判断对象是否已实例化
if(!self::$self instanceof self){
self::$self = new self();
return self::$self;
}else{
return self::$self;
}
}
public function getnum(){
return $this->num."<hr/>";
}
}
?>