第七星尘

PHP实现的单例模式

所谓单例模式,指的是某个类只有一个实例对象。通俗点讲,就是不允许new太多实例对象出来。只能new一个,并且重复利用。
单例模式有三个要点:
1、某个类只能有一个实例
2、实例化的操作必须在类中方法进行
3、它可以向系统提供这个唯一的实例化对象(这样便可以实现重用)
下面结合代码分析:
<?PHP
class A {
//私有属性保证不被外部访问,静态性质保证类中共享
private static $a = NULL;
//这步把构造函数设置私有,从而禁止外部实例化对象
private function __construct(){};

//在类中的方法实现实例化操作
public static function getClassA(){
if(self::$a == NULL) //如果$a 为NULL,则实例化这个类
self::$a = new A();
return self::$a(); //如果不为NULL,则直接返回$a
}
}

// 调用
$a1 = A::getClassA();
 如无特殊说明,本站皆为原创。转载请注明来自第七星尘的技术博客《PHP实现的单例模式》

评论

  1. 17号 #1

    做了2年phper 想提高一下 技术,有swool项目资料吗 谢谢啊 :roll: 💡

    回复
    28天前
  2.   #2

    没有防止clone

    回复
    2016-06-12
  3. 立青 #3

    老大换主题啦,给力!

    回复
    2012-12-22