Adapter
n Название и классификация Адаптер – паттерн, структурирующий классы и объекты
n Назначение Преобразует интерфейс одного класса в интерфейс другого, который ожидают клиенты. Адаптер обеспечивает совместную работу классов с несовместимыми интерфейсами, которая без него была бы невозможна
n Известен также под именем Wrapper
Adapter Применимость
n Применяйте адаптер классов, когда:
l хотите использовать существующий класс, но его интерфейс не соответствует вашим потребностям
l собираетесь создать повторно используемый класс, который должен взаимодействовать с заранее неизвестными или не связанными с ним классами, имеющими несовместимые интерфейсы
n Применяйте адаптер объектов, когда
l нужно использовать несколько существующих подклассов, но непрактично адаптировать их интерфейсы путем порождения новых подклассов от каждого. В этом случае адаптер объектов может приспосабливать интерфейс их общего родительского класса
Adapter ( класса)
n Неприменим, если требуется адаптировать не только конкретный класс, но и его подклассы
n Возможно изменение в адаптере операций адаптируемого класса
n Вводится только один объект (непосредственно адаптера)
Adapter ( объекта)
n Один адаптер может работать со множеством адаптируемых объектов, включая объекты подклассов
n Затруднено замещение операций адаптируемого класса
Вопрос 98 Структурные паттерны проектирования. Паттерн «декоратор» (Decorator).25-30 Лекция Введение в паттерны проектирования.
Decorator
n Название и классификация
Декоратор – паттерн, структурирующий объекты
n Назначение
Динамически добавляет объекту новые обязанности. Является гибкой альтернативой порождению подклассов с целью расширения функциональности
n Известен также под именем
Wrapper
Decorator Мотивация
Decorator Применимость
Используйте паттерн декоратор:
n для динамического, прозрачного для клиентов добавления обязанностей объектам
n для реализации обязанностей, которые могут быть сняты с объекта
n когда расширение путем порождения подклассов по каким-то причинам неудобно или невозможно
Decorator Структура
Decorator Особенности
n Большая гибкость, чем у статического наследования
n Создание цепочек декораторов, в том числе из одних и тех же в одной цепочке
n Позволяет избежать перегруженных функциями классов на верхних уровнях иерархии
n Декоратор и его компонент не идентичны
n Множество мелких объектов
Дата: 2019-07-30, просмотров: 264.