PHP设计模式之单例模式
- 2016-09-07 17:06:31
- 幻音い
- 5947
温馨提示: 这篇文章于2955天前编写,现在可能不再适用或落后.
哈。今天在更换数据库连接方式的时候考虑到数据库用了就关的情况感觉很浪费资源。
百度了一下PHP有个设计模式叫单例模式,意思就是从头到尾这个类只会new一次,就比如说有好几个数据库查询的时候,每查询一次new一次查了就丢,这样很浪费资源。
看了半天单例模式,原来是这么容易的。
<?php/* * 单例模式,数据库连接 * */class DBConnection{ private $handle; private static $db = null; private function __construct(){ //连接数据库 $this->handle = new DB();//new 你的数据库类,或者连接数据库 } public static function get(){ if (self::$db == null ){ self::$db = new DBConnection(); } return self::$db; } public function getDB(){ return $this->handle; } public static function isGet(){ if(self::$db==null){ return false; }else{ return true; } }}?>
设置数据库连接类的构造方法为私有属性,一个获取数据库类的静态方法,再来一个获取数据库的方法。
<?php//这样就获取了一个数据库类,也就是你构造方法里面连接数据库返回的句柄DBConnection::get()->getDB();//然后如果复制上面的代码再次运行,将不会进行新的数据库连接操作。?>
如果有疑问,可以把连接句柄改成一个随机数,2次获取数据库得到的值是一模一样的。
也可以像我一样写一个isGet()的静态方法判断是否已经连接数据库了。
阁下需要登录后才可以查看评论哦~