в шаблоне Decorator, почему абстрактному декоратору нужен абстрактный компонент - PullRequest
0 голосов
/ 25 июня 2011

http://en.wikipedia.org/wiki/File:Decorator_UML_class_diagram.svg

Меня немного смущает вопрос, почему абстрактный класс Decorator должен хранить (оборачивать) класс абстрактного компонента, каков вариант использования для этого?

1 Ответ

0 голосов
/ 25 июня 2011

Основная функция декоратора состоит в том, чтобы обернуть и потенциально изменить вызовы метода обернутого компонента при реализации того же интерфейса.

Вам не нужно строго определять абстрактный класс Decorator, но если вы это сделаете, имеет смысл содержать базовый класс компонентов, как это будет сделано во всех конкретных реализациях.

Декоратор обычно функционирует, определяя методы, которые вызывают соответствующие методы обернутого компонента, но делая что-то еще до, после или вместе.

...