设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。
单例模式:
意图:保证一个类仅有一个实例,并提供一个访问它的全局访问点。
主要解决:一个全局使用的类频繁地创建与销毁。
何时使用:当您想控制实例数目,节省系统资源的时候。
如何解决:判断系统是否已经有这个单例,如果有则返回,如果没有则创建。
关键代码:构造函数是私有的。
例:
<?php
/**
* 单例模式
**/
class Db
{
//保存全局实例
private static $instance;
//数据库连接句柄
private $db;
//数据库连接参数
const HOSTNAME = "127.0.0.1";
const USERNAME = "root";
const PASSWORD = "root";
const DBNAME = "testdb";
//私有化构造函数,防止外界实例化对象
private function __construct()
{
$this->db = mysqli_connect(self::HOSTNAME,self::USERNAME,
self::PASSWORD,self::DBNAME);
}
//私有化克隆函数,防止外界克隆对象
private function __clone()
{
}
//单例访问统一入口
public static function getInstance()
{
if(!(self::$instance instanceof self))
{
self::$instance = new self();
}
return self::$instance;
}
//数据库查询操作
public function getinfo()
{
$sql = "select * from testtb";
$res = mysqli_query($this->db,$sql);
while($row = mysqli_fetch_array($res)) {
echo $row['testcol'] . '<br />';
}
mysqli_free_result($res);
}
}
$mysqli = Db::getInstance();
$mysqli->getinfo();
?>