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

Как устроен паттерн Singleton

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

Реализация в Python:

python
class Singleton:
    _instance = None

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

Особенности:

  • __new__ переопределяется для контроля создания экземпляра.
  • При первом вызове создаётся объект, при последующих — возвращается существующий.
  • Потокобезопасность требует дополнительных мер (например, блокировок).

Использование:

python
a = Singleton()
b = Singleton()
print(a is b)  # True

Применение:

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

Минусы:

  • Усложняет тестирование (глобальное состояние).
  • Нарушает принцип единственной ответственности.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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