Sobes.tech
Назад к вопросам
Junior — Middle
91

Можете объяснить, что подразумевается под паттерном Singleton в программировании?

Компании, где спрашивали
А-стор

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

sobes.tech AI

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

Основные характеристики:

  • Конструктор класса закрыт или приватен, чтобы предотвратить создание экземпляров извне.
  • Класс содержит статический метод, который возвращает единственный экземпляр.
  • Экземпляр создаётся при первом обращении (ленивая инициализация) или сразу.

Пример на C++:

class Singleton {
private:
    Singleton() {} // приватный конструктор
    Singleton(const Singleton&) = delete;
    Singleton& operator=(const Singleton&) = delete;

public:
    static Singleton& getInstance() {
        static Singleton instance; // создаётся один раз
        return instance;
    }

    void doSomething() {
        // ...
    }
};

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

Этот паттерн полезен, когда нужен один общий объект, например, для управления конфигурацией или доступом к ресурсам.