PHP设计模式(2)单例模式

某些应用程序资源是独占的,因为有且只有一个此类型的资源。例如,通过数据库句柄到数据库的连接是独占的。您希望在应用程序*享数据库句柄,因为在保持连接打开或关闭时,它是一种开销,在获取单个页面的过程中更是如此。

单例模式可以满足此要求。


<?php
class Mysql{
//定义一个私有的静态变量,用来存放对象实例
private static $instance = null;
private $conn;
//设置构造方法为私有,不允许通过new获得对象
private function __construct(){
$conn = mysql_connect('localhost','root','123456');
}
//获取实例方法
public static function getInstance(){
if(! self::$instance instanceof self){
self::$instance = new self;
}
return self::$instance;
}
//禁止克隆
private function __clone(){}
}
$db = Mysql::getInstance();


这样每个数据库连接,都是用的一个对象实例。