Встречается на собеседованиях • сегодня
Почему Singleton это антипаттерн
Singleton часто считается антипаттерном из-за нескольких проблем:
- Глобальное состояние – Singleton создаёт глобально доступный объект, что усложняет тестирование и нарушает принцип инкапсуляции.
- Трудности с мокированием – Зависимости от Singleton сложно заменять в тестах.
- Нарушение SRP – Часто становится "божественным объектом", берущим на себя слишком много обязанностей.
- Проблемы с многопоточностью – Ленивая инициализация требует синхронизации, что может привести к deadlock.
Пример плохого Singleton:
java
public class BadSingleton {
private static BadSingleton instance;
private BadSingleton() {}
public static synchronized BadSingleton getInstance() {
if (instance == null) {
instance = new BadSingleton();
}
return instance;
}
}Альтернативы: Dependency Injection (Spring, Guice) или явная передача зависимостей.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы