
Лекции Java / 13. Введение в паттерны проектирования.pptx
.pdf
Структурные паттерны |
|
Самарский государственный аэрокосмический университет имени академика С.П. Королёва |
21 |

Adapter
nНазвание и классификация Адаптер – паттерн, структурирующий классы и объекты
nНазначение Преобразует интерфейс одного класса в
интерфейс другого, который ожидают клиенты. Адаптер обеспечивает совместную работу классов с несовместимыми интерфейсами, которая без него была бы невозможна
nИзвестен также под именем
Wrapper
Самарский государственный аэрокосмический университет имени академика С.П. Королёва |
22 |

Adapter
Применимость
n Применяйте адаптер классов, когда:
•хотите использовать существующий класс, но его интерфейс не соответствует вашим потребностям
•собираетесь создать повторно используемый класс, который должен взаимодействовать с заранее неизвестными или не связанными с ним классами, имеющими несовместимые интерфейсы
n Применяйте адаптер объектов, когда
•нужно использовать несколько существующих подклассов, но непрактично адаптировать их интерфейсы путем порождения новых подклассов от каждого. В этом случае адаптер объектов может приспосабливать интерфейс их общего родительского класса
Самарский государственный аэрокосмический университет имени академика С.П. Королёва |
23 |

Adapter (класса)
nНеприменим, если требуется адаптировать не только конкретный класс, но и его подклассы
nВозможно изменение в адаптере операций адаптируемого класса
nВводится только один объект (непосредственно адаптера)
Самарский государственный аэрокосмический университет имени академика С.П. Королёва |
24 |

Adapter (объекта)
nОдин адаптер может работать со множеством адаптируемых объектов, включая объекты подклассов
nЗатруднено замещение операций адаптируемого класса
Самарский государственный аэрокосмический университет имени академика С.П. Королёва |
25 |

Decorator
nНазвание и классификация Декоратор – паттерн, структурирующий объекты
nНазначение Динамически добавляет объекту новые
обязанности. Является гибкой альтернативой порождению подклассов с целью расширения функциональности
nИзвестен также под именем
Wrapper
Самарский государственный аэрокосмический университет имени академика С.П. Королёва |
26 |

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

Decorator
Применимость
Используйте паттерн декоратор:
nдля динамического, прозрачного для клиентов добавления обязанностей объектам
nдля реализации обязанностей, которые могут быть сняты с объекта
nкогда расширение путем порождения подклассов по каким-то причинам неудобно или невозможно
Самарский государственный аэрокосмический университет имени академика С.П. Королёва |
28 |

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

Decorator
Особенности
nБольшая гибкость, чем у статического наследования
nСоздание цепочек декораторов, в том числе из одних и тех же в одной цепочке
nПозволяет избежать перегруженных функциями классов на верхних уровнях иерархии
nДекоратор и его компонент не идентичны
nМножество мелких объектов
Самарский государственный аэрокосмический университет имени академика С.П. Королёва |
30 |