PHP的单例模式

查看:112
本文介绍了PHP的单例模式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

哪位大哥用通俗的语言给我介绍一下什么是单例模式?最好可以有代码跟随(网上的语言太专业,表示理解不懂)

解决方案

1、new ChuiZi() 就是生成一次实例,生成一次实例就是造一个锤子。
2、如果你每次用到锤子,你就造一个锤子,那多费铁啊,用地方储存啊。计算机里就是要用内存啊,要用资源啊。
3、于是就有人想,怎么只用一个锤子,而不是每次都New一个锤子。

于是就有了单例模式 :

class ChuiZi {

    static private $_instance = NULL;

    public static function getInstance() {
        if(self::$_instance == NULL) {
            self::$_instance = new ChuiZi();
        }

        return self::$_instance;
    }
}

// 这样 ChuiZi::getInstance(); 大家就都是用同一个实例啦

4、虽然我们可以要求同伴都ChuiZi::getInstance()这么写这么调用。但是难免有人会new 一个,或者克隆一个。那不就不是单个实例了!!!于是:

class ChuiZi {

    static private $_instance = NULL;

    public static function getInstance() {
        if(self::$_instance == NULL) {
            self::$_instance = new ChuiZi();
        }

        return self::$_instance;
    }

    private function __construct() {}
    private function __clone() {}

}

所以发现这设计模式,不是为了装逼而是为了解决问题。
以上就是单例模式。

不要问我一个锤子够用吗!!!
要是问我是不是所有情况都适合用单例,我倒是想好了一个案例:
new GirlFriend();

这篇关于PHP的单例模式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆