【一天一个设计模式】02 - 单件模式
时间:2008-11-06
来源:互联网
但是今天还是继续吧。。。。。
还是上例子,稍微加点理解。。。。
<?php
class userInfo
{
private $userName;
//唯一的实例
private static $instance;
//构造方法
private function __construct()
{
//查询数据库,获得用户名
$this->userName = 'lightsaber';
}
//获取对象实例
public static function getInstance()
{
if (self::$instance=='') self::$instance = new userInfo();
return self::$instance;
}
//返回用户信息
public function getUserInfo()
{
return $this->userName;
}
}
//获取唯一的实例
$userInfo = userInfo::getInstance();
//显示用户名
echo '用户名是'.$userInfo->getUserInfo().'<br>';
//天气播报
echo '向用户'.$userInfo->getUserInfo().'播报天气<br>';
?>
其实单件模式还是比较好理解的一个模式,比如上面这个例子,用在数据库链接上,就可以保证数据库的唯一连接了
而单件模式也可以用于减少数据库的查询,感觉这个作用也是大大地~~~~,如下
<?php
class userInfo
{
private static $userName;
//查询数据库,获得用户名
private static function findUserInfo()
{
//查询数据库,获得用户名
self::$userName = 'lightsaber';
}
public static function getUserInfo()
{
//判断是否已经获取了用户数据
if (self::$userName=='') self::findUserInfo();
return self::$userName;
}
}
//显示用户名
echo '用户名是'.userInfo::getUserInfo().'<br>';
//天气播报
echo '向用户'.userInfo::getUserInfo().'播报天气<br>';
?>
好了,单件模式我就能理解这么多了,而且例子也很具有代表性,大家自己【悟】吧。。。。
作者: kakashilw 发布时间: 2008-11-06
if (self::$instance=='') self::$instance = new userInfo();
===>if (self::$instance==null) self::$instance = new self();
作者: NoAngels 发布时间: 2008-11-06
作者: 0hudu 发布时间: 2008-11-06

作者: yafeikf 发布时间: 2009-01-08
作者: 东至 发布时间: 2009-01-08

作者: jfk0514 发布时间: 2009-01-12
作者: zhaofei299 发布时间: 2009-09-14
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28