|
|
Компьютеры - Декоратор (шаблон проектирования) - Замечания и комментарии30 марта 2011
Оглавление: 1. Декоратор (шаблон проектирования) 2. Замечания и комментарии 3. Применение шаблона
- Хотя объект-декоратор может добавлять свою функциональность до или после функциональности основного объекта, цепочка создаваемых объектов всегда должна заканчиваться объектом класса
ConcreteComponent .
- Базовые классы языка Java широко используют шаблон Декоратор для организации обработки операций ввода-вывода.
- И декоратор, и адаптер являются обертками вокруг объекта - хранят в себе ссылку на оборачиваемый объект и часто передают в него вызовы методов. Отличие декоратора от адаптера в том, что адаптер имеет внешний интерфейс, отличный от интерфейса оборачиваемого объекта, и используется именно для стыковки разных интерфейсов. Декоратор же имеет точно такой же интерфейс, и используется для добавления функционала.
- Для расширения функционала класса возможно использовать как декораторы, так и стратегии. Декораторы оборачивают объект снаружи, стратегии же втыкаются в него внутрь по неким интерфейсам. Недостаток стратегии: класс должен быть спроектирован с возможностью втыкания стратегий, декоратор же не требует такой поддержки. Недостаток декоратора: он оборачивает ровно тот же интерфейс, что предназначен для внешнего мира, что вызывает смешение публичного интерфейса и интерфейса кастомизации, которое не всегда желательно.
Просмотров: 2430
|