Какие паттерны проектирования вы знаете и использовали в работе
Что проверяют
Не список из книги, а понимание задачи, которую шаблон решает. Без примера из своей работы ответ не засчитывается.
Как отвечать
Назовите несколько и к каждому дайте случай из практики.
> «Из порождающих чаще всего фабрика: создание клиентов внешних сервисов по конфигурации, чтобы код не знал, какой именно провайдер поднят. Строитель для сложных запросов. Синглтон использую редко и осознанно, обычно это модуль, который в Python и так один. > > Из структурных адаптер: обёртка над сторонним SDK, потому что менять его пришлось дважды. Фасад над несколькими репозиториями, чтобы сценарий работал с одним объектом. Декоратор в чистом виде, это встроенный механизм языка, им замеряю время и добавляю повторы. > > Из поведенческих стратегия для разных правил расчёта, наблюдатель через события, репозиторий и единица работы в слое данных».
Полезно добавить, что часть шаблонов в Python выражается языком, а не классами: стратегия это просто передача функции, декоратор встроен в синтаксис, одиночка чаще всего лишний из-за модулей.
Главная мысль: шаблон это ответ на повторяющуюся задачу, а не цель. Введённый заранее, он добавляет слои и ничего не упрощает.
Где спотыкаются
Перечисляют названия без единого своего примера.
Тащат в Python шаблоны из Java там, где хватает функции.
Называют синглтон любимым, не упоминая проблем с тестированием.
Городят абстрактную фабрику для двух реализаций.