PHP单例模式

作为一名开发人员,很惭愧的说,我只会PHP,而且还半吊子。这算是我记的学习笔记了吧。

单例模式(简介)

单例模式,简言之,就是一个对象只负责一个任务。
使用单例模式的好处就是可以节约资源,增大访问速度。比如说数据库的连接,我们只需要实例化一次,不需要每次都去new了,这样极大的降低了资源的耗费。

1. 单例类

  1. 构造函数设置为private或者protected,单例类不能在其他类中实例化;
  2. 拥有一个保存类的实例静态成员变量;
  3. 拥有一个公共静态成员方法,一般为getInstance()方法;
  4. 备注:写死__clone()方法,使单例对象不被克隆。

2. 为什么使用单例模式

  1. 防止大量的数据库操作,new对象损耗资源;
  2. 可以用单例类控制全局信息;
  3. 方便调试,大量的操作都集中在一个类中。

3. 代码参考

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class TestSingleInstance {
//定义静态实例成员
private static $singleton;

//重写构造函数
private function __construct() {
}

//重写克隆函数
private function __clone {
}

//获取单例对象方法,返回单例对象
public static function getInstance() {
if(self::$singleton == null) {
self::$singleton = new TestSingleInstance();
}
return self::$singleton;
}

//功能方法
public funtion method(){
}
}

调用时:

1
$TestSingle = TestSingleInstance::getInstance()->method();