1、单例模式
1.1、简介
最简单的设计模式之一。属于创建型模式
1.2、优点
在内存中只有一个实例,减少了内存的开销
1.3、缺点
不能继承,与单一职责原则冲突。一个类应该只关心内部逻辑,而不关心外面怎么样来实例化。
2、实现
步骤1
定义单例class
class DatabaseInstance
{
//单例模式
protected static $db;
private function __construct()
{
//...连接数据库操作
}
static function getInstance()
{
if( self::$db){
return self::$db;
}else{
self::$db = new self();
return self::$db;
}
}
public function where($where)
{
//....更多操作
return $this;
}
//...更多数据库方法封装
}
步骤2
使用
//无论获取了几次,最终只连接了一次数据库
$db = DatabaseInstance::getInstance();
$db = DatabaseInstance::getInstance();
$db = DatabaseInstance::getInstance();
参考:
https://www.runoob.com/design-pattern/singleton-pattern.html