单例模式
1.什么是单例模式
在现实生活中存在着有这样的特点的一些类:
A.这些类只能有一个实例;
B.这些能够自动实例化;
C.这个类对整个系统可见,即必须向整个系统提供这个实例。
不妨举一个具体的单例模式的例子:比如教室里面的教师和学生都是需要在黑板上写字的,但是一般的情况下,教室里面应该只有一个黑板吧,它是教师和学生公用滴。这时就要想办法保证取得的黑板是一个共享的唯一的对象。而单例模式就是解决这类问题的一个已经成型的模式。
代码如下:
class Ren
{
public $name;
private static $dx; //存储对象
private function __construct()
{
}
public static function DuiXiang()
{
if(empty(self::$dx))
{
self::$dx = new Ren();
}
return self::$dx;
}
}
$r = Ren::DuiXiang();
$r->name = "张三";
var_dump($r);
$r1 = Ren::DuiXiang();
var_dump($r1);
1.构造函数变为私有的
2.做了一个方法来间接造对象
3.在该方法里面加限制