Декоратор (Decorator)

Материал из Вики ИТ мехмата ЮФУ
Перейти к: навигация, поиск

К основной странице курса

Другое название

Обертка (Wrapper)

Назначение

Динамически добавляет объекту новые свойства (без использования наследования, на этапе выполнения).

Описание

Реализация

Диаграмма классов

Файл:Common.png

Участники

Пример

Пример. В Java - разновидности файловых потоков. К стандартному файловому потоку могут быть добавлены декораторы буферизации, шифрования, архивации и проч. в любых комбинациях.

Декоратор принимает отдекорированный предыдущими декораторами объект и возвращает объект с дополнительной декорацией.

Пример. Фримен. Кофе и дополнения: шоколад, ваниль, молоко, пена...

Код

Достоинства и недостатки

Варианты