设计模式:单例模式


单例模式是最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个雷提供了一种访问其唯一的对象的方法,可以直接访,不需要实例化该类的对象。
主要特征:
1、单例类只能有一个实例
2、单例类必须自己创建自己的唯一实例。
3、单例类必须给所有其他对象提供这一实例。
 
优点:
1、在内存中只有一个实例,减少了内存的开销,尤其是频繁的创建和销毁实例。
2、避免资源的多重暂用(比如写文件操作)
 
缺点:
没有接口,不能继承,于单一职责冲突,一个类应该只关心内部逻辑,而不关心外面怎么样来实例化。
 
单例模式的三个要点:
1、需要一个保存类的唯一实例的静态成员变量
2、构造函数和克隆函数必须声明为私有的,防止外部程序new类从而失去单例模式的意义
3、必须提供一个访问这个实例的公共静态方法,从而返回唯一实例的一个引用。
 
实例:
class SingletonMode
{
    private static $instance;

    private function __construct()
    {
    }

    private function __clone()
    {
    }

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

        return self::$instance;
    }

    public function showName()
    {
        return 'SingletonModel';
    }
}

 

调用:

dump(SingletonMode::getInstance()->showName());

// 输出 string(14) "SingletonModel"

 

发布时间 : 2023-02-28,阅读量:944
本文链接:https://upwqy.com/details/387.html
PhpStorm中配置 php-cs-fixer 以工具插件的方式 格式化代码 cookie与session的区别