Встречается на собеседованиях • сегодня
Почему рукописный Singleton считается антипаттерном
Рукописный Singleton часто считается антипаттерном из-за проблем с тестированием, нарушением принципа единственной ответственности и сложностью управления зависимостями.
Основные проблемы:
- Тестирование – Singleton усложняет модульное тестирование из-за глобального состояния.
- Гибкость – Замена реализации требует изменения кода, а не конфигурации.
- Многопоточность – Наивная реализация не потокобезопасна.
Пример проблемной реализации:
java
public class Singleton {
private static Singleton instance;
private Singleton() {}
public static Singleton getInstance() {
if (instance == null) {
instance = new Singleton(); // Не потокобезопасно!
}
return instance;
}
}Альтернативы:
- Использовать DI-фреймворки (Spring, Guice).
- Если нужен Singleton, предпочитать
enumили синхронизированные методы.
Вывод: Лучше делегировать управление жизненным циклом объектов DI-контейнерам.

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