Junior — Middle
Как да реализираме ленивата инициализация на патърна Singleton?
sobes.tech AI
Отговор от AI
Мързеливата инициализация на Singleton в Java позволява създаването на екземпляр на класа само при първия му достъп, което спестява ресурси. Един от най-разпространените начини е използването на вътрешен статичен клас:
public class Singleton {
private Singleton() {
// частен конструктор
}
private static class Holder {
private static final Singleton INSTANCE = new Singleton();
}
public static Singleton getInstance() {
return Holder.INSTANCE;
}
}
Тук класът Holder се зарежда и инициализира само при първия извик на getInstance(), което осигурява безопасност при многонитови среди и лениво инициализиране без синхронизация.