php单例模式
<?php
/**
* 单例模式(Singleton):用于为一个类生成一个唯一的对象。
* 最常用的地方是数据库连接。 使用单例模式生成一个对象后,该对象可以被其它众多对象所使用。
*
* 作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类。
* 单例模式(singleton)有三个特点
* 1、一个类只能有一个实例
* 2、它必须自行创建这个实例
* 3、它必须自行向整个系统提供这个实例
*/
/**
* 单例类
* Singleton.class
*/
class Singleton
{
/**
* 静态变量,保存全局实例
*/
private static $_instance = NULL;
/**
* 私有化默认构造方法,保证外界无法直接实例化
*/
private function __construct() {
}
/**
* 静态工厂方法,返回此类的唯一实例
*/
public static function getInstance($className = __CLASS__) {
if (isset(self::$_instance[$className])) {
return self::$_instance[$className];
} else {
$instance = self::$_instance[$className] = new $className(null);
return $instance;
}
}
/**
* 测试用方法
*/
public function test()
{
echo 'Singleton Test OK!';
}
}
/**
* 使用
*/
include "Singleton.class";
class Client
{
public function main() {
$instance = Singleton::getInstance();
$instance->test();
}
}