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");
发表评论