摘要:1.构造方法私有化 克隆方法私有化 2.声明一个静态属性用于存储已实例化对象 3.开放一个静态方法用于对外提供对象4.外部获取对象时检测静态属性中是否存储有对象,如果有,则将对象返回,如果没有,实例化一个对象存入静态属性并将对象返回<?php class test{ //私有化构造方法 private function __construct(){} //私有化克隆方法
1.构造方法私有化 克隆方法私有化
2.声明一个静态属性用于存储已实例化对象
3.开放一个静态方法用于对外提供对象
4.外部获取对象时检测静态属性中是否存储有对象,如果有,则将对象返回,如果没有,实例化一个对象存入静态属性并将对象返回
<?php
class test{
//私有化构造方法
private function __construct(){}
//私有化克隆方法
private function __clone(){}
//声明静态属性
protected static $obj = null;
public static function getObj(){
if(is_null(self::$obj)){
static::$obj = new self();
}
return self::$obj;
}
}
$res1 = test::getObj();
$res2 = test::getObj();
var_dump($res1);
echo "<br />";
var_dump($res2);
?>
批改老师:天蓬老师批改时间:2018-12-20 17:25:52
老师总结:单例模式,有不止一种实现方法, 有空看一下其它方案