Sobes.tech
Назад к вопросам
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) или статический внутренний класс.