第七星尘

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.   #1

    没有防止clone

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

    老大换主题啦,给力!

    回复
    2012-12-22