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");

 

 

发表评论