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

Паттерн Singleton гарантирует, что у класса есть только один экземпляр, и предоставляет глобальную точку доступа к нему.

Короткий ответ

Что ответить на собеседовании

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

Подробный разбор

Ответ с пояснениями

Паттерн 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();

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

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку