Sobes.tech
Назад к вопросам
Middle
174

Как вы реализовали бы паттерн Singleton в своем коде?

Ответ от нейросети

sobes.tech AI

Паттерн Singleton гарантирует, что у класса есть только один экземпляр, и предоставляет глобальную точку доступа к нему. В C++ один из распространённых способов реализации — использовать статический метод с локальным статическим объектом, что обеспечивает ленивую инициализацию и потокобезопасность начиная с C++11:

class Singleton {
public:
    static Singleton& getInstance() {
        static Singleton instance; // создаётся при первом вызове
        return instance;
    }

    // удаляем копирование и присваивание
    Singleton(const Singleton&) = delete;
    Singleton& operator=(const Singleton&) = delete;

private:
    Singleton() {} // приватный конструктор
};

// Использование:
// Singleton& s = Singleton::getInstance();

Такой подход прост и эффективен, не требует дополнительной синхронизации и гарантирует единственность объекта.