设计模式之单例模式

什么是单例模式

通过对构造函数__contruct和析构函数__destruct的私有化,从而防止从类的外部通过new创建对象,然后在类的内部来进行实例化,并用静态变量存储到内存中,之后通过判断类是否已经被实例化,如果已经被实例化,则无需再创建对象。

使用场景

主要用于项目中经常会用到的类,比如数据库类的实例化、Redis类的实例化等

优点

1.不需要反复的创建对象实例,可以节省内存消耗

2.可以提升系统的性能

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
25
class A
{
	private static $_instance;//用来存储实例的静态变量
	
    private function __construct()
    {
        # code...

    }

    static function getInstance()
    {
        # 判断是否存在已经实例化过的对象,这样可以保证永远只有一个被实例化过的对象php
            if (!self::$_instance) {
            # 如果没有再次进行实例化
                self::$_instance = new self;
                echo "aa";
        }

        return self::$_instance;
    }
}

A::getInstance();//输出aa
A::getInstance();//无输出
上一篇:【设计模式】单例模式(Singleton)


下一篇:设计模式-单例模式