Встречается на собеседованиях • сегодня

Singleton: паттерн или антипаттерн

Singleton — это паттерн проектирования, но его часто критикуют за злоупотребление.

Плюсы:

  • Гарантирует единственный экземпляр класса.
  • Глобальная точка доступа.

Минусы:

  • Нарушает принцип единственной ответственности (SRP).
  • Усложняет тестирование из-за скрытых зависимостей.
  • Потенциальные проблемы в многопоточной среде.

Пример:

java
public class Singleton {
    private static Singleton instance;
    
    private Singleton() {}
    
    public static synchronized Singleton getInstance() {
        if (instance == null) {
            instance = new Singleton();
        }
        return instance;
    }
}

Когда использовать?

  • Логгеры, конфигурации, подключения к БД — если действительно нужен один экземпляр.

Альтернативы:

  • Dependency Injection (например, через Spring).
  • Статические утилитные классы (если не нужен полиморфизм).

Вывод: Singleton — паттерн, но применять его стоит осторожно.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы