博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP设计模式-Singleton 单例(单元素)模式
阅读量:6932 次
发布时间:2019-06-27

本文共 2272 字,大约阅读时间需要 7 分钟。

整理一下自己的学习Aaron Saray 写的PHP设计模式一些demo和自己的理解。大佬看完如果发现鄙人理解有误请立即指出,感谢拍砖,跪求鞭打

/** * Singleton  单例(单元素)模式实现 * ------------------------------------- * ** 来自说明 ** *  * 通过提供对自身共享实例对访问,单元素(单例)设计模式用于限制特定对象只能被创建一次。 * 此对象可能最多存储自身的5个实例,如果出现第6个请求,那么不得不等待。 * 或者只是提供对先前创建的5个实例之一的引用在排队请求中,这种体系结构类型特别有用 *  * =====================================  * ** 应用场景 ** *  * 最常用于数据库连接对象,数据库访问对象可以负责创建一个与数据库的实例化连接。 * 接下来,只要调用这个对象的特定方法,该对象就会使用已成功创建的连接。 * 从而减少服务器开销  * ------------------------------------- *  * @version ${Id}$ * @author Shaowei Pu 
*/
* @CreateTime 2017-02-08T11:20:19+0800 * @return [type] [description] */ private function __clone(){} /** * [__construct 不能new啦] * @author Shaowei Pu
* @CreateTime 2017-02-08T11:18:09+0800 */ private function __construct(){ try{ $this->pdo =new \PDO("mysql:dbname=数据库名字;host=127.0.0.1,root,123456"); $this->pdo->exec('SET NAMES utf8');//设置通信编码 $this->pdo->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION); }catch(PDOException $e){ die('error:'.$e->getMessage()); } } /** * [getinstance 单例开始] * @author Shaowei Pu
* @CreateTime 2017-02-08T11:21:31+0800 * @return [type] [description] */ public static function getInstance(){ // 检测其并不是本类实例 if( !self::$_instance instanceof self ){ self::$_instance = new self; } return self::$_instance; } /** * [select 简单查询操作] * @author Shaowei Pu
* @CreateTime 2017-02-08T12:11:06+0800 * @param [type] $dbname [description] * @param [type] $filed [description] * @param [type] $where [description] * @return [type] [description] */ public function select($dbname,$filed,$where) { $stmt = self::$_pdo ->prepare(" SELECT {$filed} FROM {$dbname} {$where}"); $stmt->execute(); return $stmt->fetchAll(PDO::FETCH_ASSOC); }}Singleton::getInstance();

转载地址:http://jlmjl.baihongyu.com/

你可能感兴趣的文章
HDU1274 士兵队列训练问题
查看>>
linux每天积累一点点(学习笔记积累)
查看>>
我的友情链接
查看>>
Centos下构建Nagios监控平台提示“无权限访问nagios”?
查看>>
GTID复制模式手动跳过复制错误
查看>>
CRT连接Vmware CentOS
查看>>
使用Javascript来编写贪食蛇(零基础)
查看>>
Linux下重导进程输出
查看>>
C# Excel导入数据
查看>>
js友好提示是否继续,post提交
查看>>
[20170825]11G备库启用DRCP连接3.txt
查看>>
mysql语句修改zencart产品原价为特价的倍数
查看>>
Python-pycurl模块的安装
查看>>
获取和设置用户id以及组id
查看>>
lsjORM ----让开发变得更加快捷(二)
查看>>
【转载】两个递增数列排序后求第n个数
查看>>
微软SqlHelper详细解读
查看>>
mysql数据库常用语句系列
查看>>
ie9下对象for..in..的bug
查看>>
锚点跳转的过渡效果
查看>>