Junior — Middle
65
Каким образом реализовать шаблон Singleton в языке Java?
Компании, где спрашивали
Hftlabs
Ответ от нейросети
sobes.tech AI
В Java шаблон Singleton гарантирует, что у класса есть только один экземпляр, и предоставляет глобальную точку доступа к нему.
Простейшая реализация с ленивой инициализацией и синхронизацией:
public class Singleton {
private static Singleton instance;
private Singleton() {
// приватный конструктор
}
public static synchronized Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
Другой популярный и более эффективный способ — использовать инициализацию через статический вложенный класс:
public class Singleton {
private Singleton() {}
private static class Holder {
private static final Singleton INSTANCE = new Singleton();
}
public static Singleton getInstance() {
return Holder.INSTANCE;
}
}
Этот способ потокобезопасен и не требует синхронизации при каждом вызове.