n Соответствие интерфейсов декоратора и декорируемого объекта
n Возможное отсутствие абстрактного класса декоратора
n Облегчение, по возможности,
декорируемого класса
n Изменяется «облик»,
а не внутренне
устройство объекта
Вопрос 99 Структурные паттерны проектирования. Паттерн «заместитель» (Proxy). 31-35 Лекция Введение в паттерны проектирования.
Proxy
n Название и классификация
Заместитель – паттерн, структурирующий объекты
n Назначение
Является суррогатом другого объекта и контролирует доступ к нему
n Известен также под именем
Surrogate
Proxy
n Мотивация
n Применимость
Заместитель применим во всех случаях, когда возникает необходимость сослаться на объект более изощренно, чем это возможно, если использовать простую ссылку
Proxy Применимость
n Удаленный заместитель предоставляет локального представителя вместо объекта, находящегося в другом адресном пространстве
n Виртуальный заместитель создает тяжелые объекты по требованию
n Защищающий заместитель контролирует доступ к исходному объекту
Proxy Применимость
n Умная ссылка замена обычного указателя:
l подсчет числа ссылок на реальный объект
l загрузка объекта в память при первом обращении к нему
l проверка и установка блокировки на реальный объект при обращении к нему, чтобы никакой другой объект не смог в это время изменить его
Proxy Структура
Диаграмма объектов
Вопрос 100 Поведенческие паттерны проектирования. Паттерн «итератор» (Iterator). 38-42 Лекция Введение в паттерны проектирования.
Iterator
n Название и классификация Итератор – паттерн поведения объектов
n Назначение Предоставляет способ последовательного доступа ко всем элементам составного объекта, не раскрывая его внутреннего представления
n Известен также под именем Cursor
Iterator Мотивация
Iterator Применимость
Используйте итератор:
n Для доступа к содержимому агрегированных объектов без раскрытия их внутреннего представления
n Для поддержки нескольких активных обходов одного и того же агрегированного объекта
n Для предоставления единообразного интерфейса с целью обхода различных агрегированных структур (для поддержки полиморфной итерации)
Iterator Структура
Iterator
n Особенности
l Поддерживает различные виды обхода агрегата
l Итераторы упрощают интерфейс класса-агрегата
l Одновременно для данного агрегата может быть активно несколько обходов
n Реализация
l Какой участник управляет итерацией?
n Внутренний
n Внешний
l Насколько итератор устойчив?
l Дополнительные операции итератора
Дата: 2019-07-30, просмотров: 243.