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

Какие используешь паттерны проектирования

В Python часто применяют следующие паттерны:

1. Singleton – гарантирует единственный экземпляр класса:

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

2. Фабрика (Factory) – создание объектов через отдельный метод:

python
class ButtonFactory:
    def create_button(self, type_):
        if type_ == "windows":
            return WindowsButton()
        elif type_ == "mac":
            return MacButton()

3. Наблюдатель (Observer) – уведомление подписчиков об изменениях:

python
class Subject:
    def __init__(self):
        self._observers = []
    def notify(self):
        for observer in self._observers:
            observer.update(self)

4. Декоратор – добавление функциональности без изменения класса:

python
def log_time(func):
    def wrapper(*args, **kwargs):
        start = time.time()
        result = func(*args, **kwargs)
        print(f"Time: {time.time() - start}")
        return result
    return wrapper

Также полезны Адаптер, Стратегия, Фасад. Выбор зависит от задачи – например, Singleton для логгеров, Фабрика для кросс-платформенных UI.

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

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

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

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