单例模式

单例模式

  1. 私有化构造方法,禁止外部实例化对象
  2. 声明一个静态属性,用于保存类的实例
  3. 声明一个静态方法,用声明的静态属性实例化对象

单例模式的最终目的

  • 将对象实例化后保存到静态属性中,接下来的每次调用该对象时都是调用该静态属性
  • 而不是重新实例化该对象
  • 要知道,每次实例化一个对象时都是需要消耗一定的内存的

演示demo

class Singleton
{
    public static $instance = null;

    private function __construct()
    {}

    public static function getInstance()
    {
        if (!self::$instance){
            self::$instance = new self();
        }
        return self::$instance;
    }

    public function getData()
    {
        return '获取到了';
    }

}

使用方法

dump(Singleton::getInstance()->getData());

输出结果
屏幕截图 2020-10-18 135729.png

添加新评论