abstract:<?php//hubby类仅允许被实例化一次class Hubby{ //1.new 来创建类实例 //2.clone 来克隆当前类的实例 private function __construct(){}//构造器私有化 private function __clone(){}//克隆私有化 //创建类的内部静态属性,用于保存类的唯一实例 protected static $instance
<?php
//hubby类仅允许被实例化一次
class Hubby{
//1.new 来创建类实例
//2.clone 来克隆当前类的实例
private function __construct(){}//构造器私有化
private function __clone(){}//克隆私有化
//创建类的内部静态属性,用于保存类的唯一实例
protected static $instance = null;
//创建一个外部接口,创建并返回当前类的唯一实例
public static function getInstance(){
if (is_null(static::$instance)) {
static::$instance = new static();
}
return static::$instance;
}
}
//从外部实例化Hubby类
$Hubby1 = Hubby::getInstance();
$Hubby2 = Hubby::getInstance();
echo ($Hubby1 instanceof Hubby )?'是':'不是';
echo "<br>";
echo ($Hubby2 instanceof Hubby )?'是':'不是';
echo "<br>";
echo ($Hubby1 ===$Hubby2) ? '完全相等':'不相等';
echo "<br>";
var_dump($Hubby1,$Hubby2);
?>
Correcting teacher:天蓬老师Correction time:2019-04-01 10:02:37
Teacher's summary:单例模式, 在很多地方都有应用, 它的设计思想,影响到了许多其它的设计模式, 多做几次, 它是创建型模式的基础之一