PHP的单例模式
本文介绍了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屋!
查看全文