Вопрос проверяет практический опыт проектирования и умение применять паттерны не теоретически, а в реальных задачах.
Чаще всего используются структурные и поведенческие паттерны.
Они помогают снижать связанность и упрощать поддержку кода.
Многие паттерны применяются неявно через фреймворки.
Важно понимать не названия, а решаемые проблемы.
Паттерны проектирования — это проверенные решения типовых архитектурных проблем.
Используется для:
Конфигураций
Кэшей
Инфраструктурных компонентов
В Spring чаще реализуется контейнером, а не вручную.
Применяется, когда:
Логика создания сложная
Тип объекта выбирается динамически
Используется для:
Замены условных операторов
Подмены алгоритмов во время выполнения
Позволяет:
Добавлять поведение без изменения класса
Расширять функциональность
Применяется для:
Событий
Подписок
Реакции на изменения состояния
Spring активно использует паттерны:
IoC — основа контейнера
Proxy — AOP и транзакции
Template Method — JdbcTemplate
Паттерны важны как инструмент мышления.
Главное — понимать, какую проблему они решают, а не просто знать названия.