设计模式在面试过程中经常会提到,有时候还会让我们举例说明各种设计模式的应用场景。
使用设计模式可以减轻我们的工作量,优化我们的代码。
设计模式非常的多,这里介绍单例模式,工厂模式,组合模式,策略模式4种模式
如果有代码有什么问题或者有更好的方式请告知,谢谢!!!!!
class SinglePDO
{
private static $_instance = null;
private $_pdo;
//私有,防止外部直接实例化new SinglePDO(...)
private function __construct($dsn,$dbUser,$dbPassword)
{
try{
$this->_pdo = new PDO($dsn,$dbUser,$dbPassword);
$this->_pdo->exec('set names utf8');
}catch(PDOException $e){
die("Error:{$e->getMessage()}");
}
}
//私有,防止克隆
private function __clone(){}
//获取连接实例
public static function getInstance($dsn,$dbUser,$dbPassword)
{
if(self::$_instance === null)
self::$_instance = new self($dsn,$dbUser,$dbPassword);
return self::$_instance;
}
//执行sql
public function execSql($sql)
{
$result = $this->_pdo->exec($sql);
return $result;
}
}
$dsn = "mysql:host=localhost;dbname=test";
$dbUser = "root";
$dbPassword = "";
$sql = "delete from user where id = 1";
$pdo = SinglePDO::getInstance($dsn,$dbUser,$dbPassword);
$result = $pdo->execSql($sql); //$pdo->execSql($sql)多次调用,但仍然是同一个pdo对象
print_r($result);



