一个类只能被实例化一次,当有其它操作进行实例化类时,返回第一次实例化的对象
主要为:三私一公 [私有属性,私有构造方法,私有克隆,一个公开的静态方法]
实现方式
class PDODB{
/**
* 私有属性
*/
private static $instance;//存放静态对象
/**
*构造方法
*/
private function __construct(){}
/**
*单例模式公开的获得对象的方法
*/
public static function getInstance(){
if (!self::$instance instanceof self ) {
self::$instance = new self();
}
return self::$instance;
}
/**
* 私有化克隆方法
*/
private function __clone() {}
/**
* 私有反序列化
*/
//private function __wakeup() {}
}
$DB1 = PDODB::getInstance();
$DB2 = PDODB::getInstance();
echo "DB1 === DB2 : ";var_dump($DB1 === $DB2);
echo "<br>";
var_dump($DB1);echo "<br>";
var_dump($DB2);
运行结果
当一个对象被多次的创建和销毁,这时使用单例模式[类只实例化了一次],明显的减少了内存的开支。