单例设计模式

单例模式也叫单态模式:可以保证一个类只能有一个对象实例
实现要点:
1.构造函数私有化,不允许使用new 关键字创建对象
2.对外提供获取对象的方法,在方法中判断对象是否为空。如果为空则创建对象并返回,如果不为空直接返回
3.实例对象的属性以及获取对象的方法必须都是静态的
4.创建对象只能使用我们提供的静态方法

class Sing{
  static public $single = null;
  private function __construct(){}
  static function getSingle(){
    if(!self::$single)
      self::$single = new Singleton();
}
  return self::$single;
}

-为什么必须是静态的?因为静态成员属于类,并被类所有实例所共享
-为什么必须是私有的?不允许外部直接访问,仅允许通过类方法控制方法
-为什么要有初始值null?因为类内部访问接口需要检测实例的状态,判断是否需要实例化

你可能感兴趣的:(单例设计模式)