定义:
保证一个类仅有一个实例,并提供一个访问它的全局访问点。
单例模式的优缺点:
优点:
1. 改进系统的设计
2. 是对全局变量的一种改进
缺点:
1. 难于调试
2. 隐藏的依赖关系
3. 无法用错误类型的数据覆写一个单例
php示例代码:
<?php
/**
* 单例模式
*/
class User
{
//静态变量保存全局实例
private static $instance = null;
//私有构造函数,防止外界实例化对象
private function __construct()
{
}
//私有克隆函数,防止外办克隆对象
private function __clone()
{
}
//静态方法,单例统一访问入口
public static function getInstance()
{
if(!isset(self::$instance) || is_null(self::$instance)){
self::$instance = new self();
}
return self::$instance;
}
public function getName()
{
return 'Hello world!';
}
}
echo User::getInstance()->getName();