Назад к вопросам
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();
Этот паттерн полезен, когда нужен один общий объект, например, для управления конфигурацией или доступом к ресурсам.