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