← 返回博客列表

模式特点

单例模式确保一个类只有一个实例,并提供一个全局访问点。其核心思想是:

类图

类图

应用场景

示例代码(C++)

// 饿汉式 - 线程安全
class Logger {
private:
    static Logger* m_instance;
    Logger() {}

public:
    static Logger* getInstance() {
        return m_instance;
    }
    void log(const std::string& msg) {
        std::cout << "[LOG] " << msg << std::endl;
    }
};
Logger* Logger::m_instance = new Logger();

// 懒汉式 - 线程安全 (C++11 Magic Statics)
class ConfigManager {
public:
    static ConfigManager& getInstance() {
        static ConfigManager instance;
        return instance;
    }
private:
    ConfigManager() = default;
    ConfigManager(const ConfigManager&) = delete;
    ConfigManager& operator=(const ConfigManager&) = delete;
};