PHP设计模式——单例模式(Singleton Pattern)
单例模式又叫单元素模式。某些应用程序资源是独占的,因为有且只有一个此类型的资源。例如,通过数据库句柄到数据库的连接是独占的。您希望在应用程序中共享数据库句柄,因为在保持连接打开或关闭时,它是一种开销,在获取单个页面的过程中更是如此。这样也避免重复创建一个对象造成的不必要的开销。
require_once("DB.php");
class DatabaseConnection
{
public static function get()
{
static $db = null;
if ($db == null)
$db = new DatabaseConnection();
return $db;
}
private $_handle = null;
// 构造函数为私有,禁止从外部实例化对象
private function __construct()
{
$dsn = 'mysql://root:password@localhost/photos';
$this->_handle =& DB::Connect($dsn, array());
}
public function handle()
{
return $this->_handle;
}
}
print("Handle = " . DatabaseConnection::get()->handle() . "\n");
print("Handle = " . DatabaseConnection::get()->handle() . "\n");
发表评论