23种设计模式-单例模式


23种设计模式-单例模式

概述

单例模式是最简单的设计模式之一,这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式

这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一对象的方式,可以直接访问,不需要实例化该类的对象。

结构

通常来说单例模式有以下步骤(三私一公):

  • 构造函数私有化
  • 克隆函数私有化
  • 私有存放实例的静态成员属性
  • 公有获取实例的函数,并且设为静态方法

代码实现

class Singleton
{
    // 私有属性,保存实例
    private static $instance;

    // 构造方法私有化,防止外部创建实例
    private function __construct(){}

    // 业务属性
    public $attr;

    // 公有方法,对外提供获取实例途径
    public static function getInstance()
    {
        // 判断实例有无创建,有的话直接返回
        if(
            !(self::$instance instanceof self)
        ){
            self::$instance = new self();
        }

        return self::$instance;
    }

    // 克隆方法私有化,防止复制实例
    private function __clone(){}
}

文章作者: 我若为侠
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 我若为侠 !
 上一篇
23种设计模式-工厂模式 23种设计模式-工厂模式
23种设计模式-工厂模式概述工厂模式属于创建型模式,它定义一个用于创建对象的接口,让子类决定实例化哪个产品类的对象。工厂方法使一个产品类的实例化延迟到其工厂的子类 结构工厂模式的主要角色: 抽象工厂 AbstractFactory :提供
下一篇 
初窥SOLID设计原则 初窥SOLID设计原则
初窥SOLID设计原则为什么要使用设计原则在软件开发中,为了提高软件系统的可维护性和可复用性,增加软件的可拓展性和灵活性,我们要尽量根据设计原则来开发程序,从而提高软件开发效率,节约软件开发成本和维护成本。 单一职责原则(SRP)简单的来说
  目录