DevPrep

Все темы › Шаблоны проектирования

Decorator: как добавить кеширование, логирование или ретраи, не меняя класс?

Middle PRO

Суть

Decorator оборачивает объект, реализуя тот же протокол, и добавляет поведение до или после передачи вызова дальше: логирование, кеширование, ретраи, метрики. Клиент получает any ProfileService и не знает, «голый» это сервис или три слоя обёрток. В отличие от наследования, декораторы собираются в рантайме в любой комбинации, каждый отвечает за одну вещь, а исходный класс не меняется.

Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.

Полный ответ — в DevPrep

Потренируйтесь перед собеседованием

В DevPrep эти ответы превращаются в задачи на минуту: что напечатает код, найди баг, пробное собеседование. По задаче в день.

Скачать DevPrep в App Store