单例模式小记

GlassCatBlog / 2023-07-29 / 原文

1. 概念

单例模式是一种设计模式。

保证一个类只有一个实例,提供一个全局访问点。

2. 实例

  • 构造函数私有化,防止外部创建对象。
  • 提供静态成员函数 getInstance,获取单例指针。
  • 使用静态指针保存单例实例。
class Singleton {
public:
    static Singleton *getInstance() {
        if (_instance == nullptr) {
            _instance = new Singleton();
        }
        return _instance;
    }

private:
    Singleton() = default;
    static Singleton *_instance;
};

// 饿汉式
Singleton *Singleton::_instance = new Singleton();

// 懒汉式
Singleton *Singleton::_instance = nullptr;