单例模式的特点:
1、只能实例化一次
单例模式的优点:
1、保证数据唯一性
2、节省内存空间
<?php/*单例设计模式 (单态)定义: 一个类 只能允许有 一个对象存在.1.不让进: 使类不能被实例化2.留后门: 设置静态方法3.给对象: 在静态方法里实例化该类4.判初夜: 判断是否是 第一次产生该类的对象5.设静态: 静态方法里 要使用静态属性*//*//1.不让进: 使类不能被实例化-----------------class Test{// 设置 一个封装的构造方法private function __construct(){//占位, 我就是不让你NEW我~~~}}*//*//2.留后门: 设置静态方法--------------------class Test{// 设置 一个封装的构造方法private function __construct(){//占位, 我就是不让你NEW我~~~}//后门public static function getObject(){echo "啊,我是后门,进吧!<br>";}}*//*//3.给对象: 在静态方法里实例化该类------------------class Test{// 设置 一个封装的构造方法private function __construct(){//占位, 我就是不让你NEW我~~~}//后门public static function getObject(){echo "啊,我是后门,进吧!<br>";return new self();//实例化一个对象给你}}*//*//4.判初夜: 判断是否是 第一次产生该类的对象------------------class Test{private $obj = null;//属性值为对象,默认为null// 设置 一个封装的构造方法private function __construct(){//占位, 我就是不让你NEW我~~~}//后门public static function getObject(){echo "啊,我是后门,进吧!<br>";if ($this->obj === null) {$this->obj = new self();//实例化一个对象}//返回的属性 其实就是本对象return $this->obj;}}*///5.设静态: 静态方法里 要使用静态属性------------------class Test{private static $obj = null;//属性值为对象,默认为null// 设置 一个封装的构造方法private function __construct(){//占位, 我就是不让你NEW我~~~}//后门public static function getObject(){echo "啊,我是后门,进吧!<br>";if (self::$obj === null) {self::$obj = new self();//实例化一个对象}//返回的属性 其实就是本对象return self::$obj;}}/*Test::getObject();//使用静态方法访问该类里的方法exit;*/$t1 = Test::getObject();$t2 = Test::getObject();//判断 两个对象 是否是同一个对象if ($t1 === $t2) {echo "哦, Yes! 是同一个实例<br>";} else {echo "哦, No! 不是同一个实例<br>";}
