Назад к вопросам
Junior — Middle
59
В чем заключается назначение паттерна Lazy Singleton и как он реализуется?
Ответ от нейросети
sobes.tech AI
Паттерн Lazy Singleton предназначен для создания единственного экземпляра класса, при этом инициализация этого экземпляра происходит только при первом обращении к нему, а не при загрузке класса. Это позволяет экономить ресурсы, если объект может не понадобиться.
Пример реализации Lazy Singleton в Java с использованием отложенной инициализации и синхронизации:
public class LazySingleton {
private static LazySingleton instance;
private LazySingleton() {
// приватный конструктор
}
public static synchronized LazySingleton getInstance() {
if (instance == null) {
instance = new LazySingleton();
}
return instance;
}
}
Здесь объект создается только при первом вызове getInstance(). Синхронизация обеспечивает потокобезопасность, но может влиять на производительность. Для улучшения можно использовать двойную проверку блокировки (double-checked locking) или статический внутренний класс.