您的位置:首页 > 其它

单例模式--实例讲解

2015-11-14 13:02 363 查看
class Preferences {
private $props = array();
private static $instance;

private   function __construct(){}

public static function getInstance(){
if(empty(self::$instance)){
self::$instance = new Preferences();
}
return self::$instance;
}

public function setProperty($key,$value){
$this->props[$key] = $value;
}

public function getProperty($key){
return $this->props[$key];
}
}

$pref = Preferences::getInstance();
$pref->setProperty('name','captain');
var_dump($pref);
echo $pref->getProperty('name')."<br>"; //输出:captain

unset($pref);
$pref2 = Preferences::getInstance();
var_dump($pref2);
echo $pref2->getProperty('name');   //输出captain


从上面的例子我们可以看出,虽然我们unset了$pref,但是$pref2仍然是可以得到captain的值。打印两个对象,对象的标识是一样的。



UML图如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: