单例模式

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.在该方法里面加限制
 
posted @ 2017-02-16 11:10  周全264  阅读(225)  评论(0编辑  收藏  举报