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

Почему Singleton считают антипаттерном

Singleton часто называют антипаттерном из-за нескольких ключевых проблем:

  1. Глобальное состояние – Singleton создаёт глобально доступный объект, что усложняет тестирование и делает код зависимым от скрытого состояния.
  2. Нарушение SRP – Часто берёт на себя слишком много обязанностей, превращаясь в "божественный объект".
  3. Проблемы с многопоточностью – Требует дополнительных механизмов синхронизации в многопоточной среде.
  4. Наследование и полиморфизм – Усложняет использование наследования и подмену реализации.

Пример плохого Singleton в Python:

python
class Database:
    _instance = None
    
    def __new__(cls):
        if cls._instance is None:
            cls._instance = super().__new__(cls)
        return cls._instance

Лучшие альтернативы: Dependency Injection, фабрики или модули (в Python модули уже являются синглтонами по своей природе).

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

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

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

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