Покажите короткий пример по теме «Decorator» и объясните, что здесь важно.
Что хотят услышать интервьюеры:
Короткий пример по теме Decorator:
Ответ:
<?php final class CachedUserRepository implements UserRepository {} Что важно: код должен быть безопасным, читаемым и соответствовать контракту задачи. Для PHP-разработчика важно объяснить не только «как написать», но и «почему так безопаснее/надежнее».
- подходит для кеширования, логирования, ретраев
- сохраняет интерфейс
- важен в Symfony middleware
Типичная ошибка: делать декораторы, которые меняют контракт и удивляют клиента.
На собеседовании: проговорите, какие edge cases вы бы проверили тестами и что бы логировали при ошибке.