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

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

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

Позволяет строить платформенно-независимые программы.

Скрывает лишние или опасные детали реализации от клиентского кода.

Реализует принцип открытости/закрытости.

Недостатки

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

ПАТТЕРН COMPOSITE

Composite

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

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

Назначение

Компонует объекты в древовидные структуры для представления иерархий часть-целое. Позволяет клиентам единообразно трактовать индивидуальные и составные объекты.

63

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

Проблема

Решение

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

Composite – структура

Composite - участники

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

- объявляет интерфейс для компонуемых объектов;

- предоставляет подходящую реализацию операций по умолчанию, общую для всех классов;

- объявляет интерфейс для доступа к потомкам и управления ими;

- определяет интерфейс для доступа к родителю компонента в рекурсивной структуре и при необходимости реализует его. Описанная возможность необязательна;

Leuf (Rectangle, Line, Text, и т.п.) - лист:

- представляет листовые узлы композиции и не имеет потомков;

- определяет поведение примитивных объектов в композиции;

Composite (Picture) - составной объект:

- определяет поведение компонентов, у которых есть потомки;

- хранит компоненты-потомки;

- реализует относящиеся к управлению потомками операции в интерфейсе класса Component;

Client - клиент:

- манипулирует объектами композиции через интерфейс Component.

67

Composite - пример

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

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

Недостатки

Упрощает архитектуру

Создаёт слишком общий

клиента при работе со

дизайн классов.

сложным деревом

 

компонентов.

 

Облегчает добавление новых видов компонентов.

ПАТТЕРН DECORATOR

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