Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции Java / 13. Введение в паттерны проектирования.pptx
Скачиваний:
160
Добавлен:
16.03.2015
Размер:
307.07 Кб
Скачать

Структурные паттерны

Adapter

Изменение интерфейса

Адаптер

 

Bridge

Разделение реализации объекта

Мост

 

Composite

Сложная структура и состав объекта

Компоновщик

 

Decorator

Изменение обязанностей объекта без порождения

Декоратор

подкласса

Facade

Интерфейс к подсистеме

Фасад

 

Flyweight

Снижение накладных расходов на хранение объектов

Приспособленец

 

Proxy

Способ доступа к объекту, смена его местоположения

Заместитель

 

Самарский государственный аэрокосмический университет имени академика С.П. Королёва 21

Adapter

Название и классификацияАдаптер – паттерн, структурирующий классы и

объектыНазначение

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

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

Самарский государственный аэрокосмический университет имени академика С.П. Королёва

Adapter

Применимость

Применяйте адаптер классов, когда:

хотите использовать существующий класс, но его интерфейс не соответствует вашим потребностям

собираетесь создать повторно используемый класс, который должен взаимодействовать с заранее неизвестными или не связанными с ним классами, имеющими несовместимые интерфейсы

Применяйте адаптер объектов, когда

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

Самарский государственный аэрокосмический университет имени академика С.П. Королёва

Adapter (класса)

Неприменим, если требуется адаптировать не только конкретный класс, но и его подклассы

Возможно изменение в адаптере операций адаптируемого класса

Вводится только один объект (непосредственно адаптера)

Самарский государственный аэрокосмический университет имени академика С.П. Королёва 24

Adapter (объекта)

Один адаптер может работать со множеством адаптируемых объектов, включая объекты подклассов

Затруднено замещение операций адаптируемого класса

Самарский государственный аэрокосмический университет имени академика С.П. Королёва 25

Decorator

Название и классификацияДекоратор – паттерн, структурирующий объектыНазначение

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

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

Самарский государственный аэрокосмический университет имени академика С.П. Королёва

Decorator

Мотивация

Самарский государственный аэрокосмический университет имени академика С.П. Королёва

Decorator

Применимость

Используйте паттерн декоратор:для динамического, прозрачного для клиентов добавления обязанностей объектам

для реализации обязанностей, которые могут быть сняты с объектакогда расширение путем порождения

подклассов по каким-то причинам неудобно или невозможно

Самарский государственный аэрокосмический университет имени академика С.П. Королёва

Decorator

Структура

Самарский государственный аэрокосмический университет имени академика С.П. Королёва

Decorator

Особенности

Большая гибкость, чем у статического наследованияСоздание цепочек декораторов, в том числе из

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

Множество мелких объектов

Самарский государственный аэрокосмический университет имени академика С.П. Королёва