Расширьте возможности существующего кода.
_00 / Концепция
Класс декоратора примет экземпляр, в котором вы хотели бы расширить функциональность. Шаблон будет предоставлять тот же интерфейс, что и исходный экземпляр, но с более расширенными функциями.
_01 / Ключевые роли
_02 / Компромиссы
🟢 Декоратор — это обертка, возможность создания подкласса.
🟢 Расширение возможностей существующего кода без модификации.
🟢 Возможна обертка с несколькими декораторами.
🔴 Слишком много декораторов или слоев обертки будет тяжело поддерживать.