PHPクラシック面接問題のデザインモデル(よく見かける)
2337 ワード
デザインモードは面接の過程でよく言及され、時には様々なデザインモードの応用シーンを例に挙げて説明します.
設計モードを使用すると、作業量を軽減し、コードを最適化できます.
設計モードは非常に多く、ここでは単例モード、工場モード、組合せモード、戦略モードの4つのモードを紹介します.
コードに何か問題があったり、もっと良い方法があったら教えてください.ありがとうございます.
設計モードを使用すると、作業量を軽減し、コードを最適化できます.
設計モードは非常に多く、ここでは単例モード、工場モード、組合せモード、戦略モードの4つのモードを紹介します.
コードに何か問題があったり、もっと良い方法があったら教えてください.ありがとうございます.
/**
*
* @author YangYang <[email protected]>
* http ( new classname )
* (redis,mongodb,memcache )
* http sql
* http sql mysql_connect(),
* , http mysql_connect()
* mysql_connect() __construct , __construct ,
* getInstance() mysql_connect()
* getInstance() myql ,
* new classname() __construct mysql_connect() ,
* PHP mysql , PDO , PDO
* , sql
* :test :user :id name :1 CodeAnti
* : user id=1
*/
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);