Декораторы отличаются от традиционных паттернов проектирования тем, что позволяют динамически подключать дополнительное поведение к объекту. 23
Шаблон декоратора предоставляет гибкую альтернативу практике создания подклассов для расширения функциональности объекта. 2 Он позволяет подключать новую функциональность до или после основной функциональности объекта, не влияя на поведение других объектов того же класса. 3
В то время как традиционные паттерны, например, адаптер, помогают решать задачи с совмещением и сочетанием сущностей и отвечают на вопрос «Как составить программный компонент так, чтобы его можно было компоновать с другими?». 1 Прокси, в отличие от декоратора, не меняет поведение оригинального объекта в рантайме, а «вмешивается» в общение с оригинальным объектом. 1