Добавил:
Developer Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции / Паттерны (3).pptx
Скачиваний:
45
Добавлен:
22.03.2023
Размер:
5.4 Mб
Скачать

Decorator

Название и классификация паттерна

Декоратор - паттерн, структурирующий объекты.

Назначение

Динамически добавляет объекту новые обязанности. Является гибкой альтернативой порождению подклассов с целью расширения функциональности.

Известен также под именем

Wrapper (обертка).

71

Decorator - проблема

Один вид оповещения

Несколько видов

оповещений

 

Decorator – проблема и решение

Несколько видов оповещений Решение одновременно

Decorator – решение

Decorator – аналогия из жизни

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

Decorator – структура

Decorator - участники

Component (VisualComponent) - компонент:

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

ConcreteComponent (TextView) - конкретный компонент:

- определяет объект, на который возлагаются дополнительные обязанности;

Decorator - декоратор:

- хранит ссылку на объект Component и определяет интерфейс, соответствующий интерфейсу Component;

ConcreteDecorator (BorderDecorator, ScrollDecorator) - конкретный декоратор:

- возлагает дополнительные обязанности на компонент.

77

Decorator – пример

Decorator – преимущества и недостатки

Преимущества

Большая гибкость, чем у наследования.

Позволяет добавлять обязанности на лету.

Можно добавлять несколько новых обязанностей сразу.

Позволяет иметь несколько мелких объектов вместо одного объекта на все случаи жизни.

Недостатки

Трудно конфигурировать многократно обёрнутые объекты.

Обилие крошечных классов.

ПАТТЕРН FACADE

Соседние файлы в папке Лекции