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