单例模式
在开发过程中我们可能在链接数据库和使用模版引擎需要通过使用单例模式避免单个对象的多次实例化调用,进而避免了资源的浪费
链接数据库的时候,代码如下:
class DB{
private $pdo;
//设置静态的成员
static private $instance;
//静态的方法调用自己
static public function getInstance(){
//判断是否已经实例化自己,如果已经实例化,直接调用静态成员即可
if(!self::$instance instanceof self){
self::$instance = new self();
}
return self::$instance;
}
//防止外部克隆
private function __clone(){}
private function __construct(){
try{
$this->pdo = new PDO('mysql:host=localhost;dbname=cms','root','');
echo '数据库链接操作!';
$this->pdo->setAttribute(PDO::ATTR_AUTOCOMMIT,PDO::ERRMODE_WARNING);
}catch (PDOException $e){
exit($e->getMessage());
}
}
public function query($sql){
$this->pdo->query($sql);
}
}
通过上面我们可以避免了多次的实例化DB类的链接