单例模式--实例讲解
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图如下:
相关文章推荐
- OC - 集合类型的快速枚举
- UISehmentControl
- https SSL协议详解(转)
- 关于ipxe启动的几个疑问
- 【Asphyre引擎】学习笔记(一)
- RAC安装重新运行root.sh
- 用C语言编写函数实现一个整数计算机,程序接受三个参数,第一个参数为操作项,后两个参数为操作数。
- UFT的描述性语言中的相关函数
- gradle入门到实践1
- Android中GPU硬件加速控制及其在2D图形绘制上的局限
- statsD
- HTTP和HTTPS详解
- 今后计划
- CheckedTextView,CheckBox和Button样式定义
- gcc从哪里寻找头文件和库文件
- 大道至简七八章读后感
- selenium API和使用(二)
- 数据库面试题集
- libXext.so.6 libXp.so.6 libXt.so.6 is needed by openmotif21-2.1.30-11.el7.i686
- 我的第一次