php设计模式——单例模式

本文介绍了PHP中的单例模式,并通过实例演示了如何确保一个类只有一个实例存在。单例模式可以有效减少资源开销,提高应用程序效率。

  学习php这么久,虽然设计模式遇到不少,但是都没有深究,最近有时间准备研究下php的设计模式,我们就从“单例模式”开始。

  单例模式,顾名思义只有一个实例。单例模式确保某一个类只有一个实例,它不会创建实例副本,而是利用自身的方法自行实例化。首先我们看一个例子:

class OpenStack{
    private static $instance = null; //注意一定要是静态私有变量private function __construct(){ //构造函数一定为私有,否则外部可以直接实例化该类

    }

    public static function getInstance(){ //该函数应为公有,保证外部可以直接调用,实例化本身;内部应判断该类实例是否存在,否则生成该实例
        if(self::$instance == null){
            self::$instance = new self();
        }
        return self::$instance;
    }
}

  在这里我们可以看到,由于该OpenStack类的构造函数是私有的,所以这个类并不能在外部直接实例化,只能通过getInstance()这个共有的方法来操作。

  在该方法的内部,我们首先要判断$instance是否存在,不存在的话就实例化该类本身,赋给$instance。否则就直接返回$instance,这样就能保证该应用中只存在该类的一个实例,避免了多次new OpenStack()产生的资源开销。

  

转载于:https://www.cnblogs.com/liujiaq/p/6137705.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值