
- •Самарский государственный аэрокосмический университет имени академика С.П. Королёва
- •План лекции
- •Повторное использование
- •МеханизмыНаследование повторного
- •Делегирование
- •Рекомендации по написанию
- •Причины перепроектирования
- •Фреймворки
- •Паттерны проектирования
- •Паттерны в ООП
- •Фреймворки vs Паттерны
- •GoFОписания паттернов
- •Порождающие паттерны
- •Singleton
- •Singleton: структура
- •Factory Method
- •Factory Method
- •Factory Method
- •Factory Method
- •Factory Method
- •Структурные паттерны
- •Adapter
- •Adapter
- •Adapter (класса)
- •Adapter (объекта)
- •Decorator
- •Decorator
- •Decorator
- •Decorator
- •Decorator
- •Decorator
- •Proxy
- •Proxy
- •Proxy
- •Proxy
- •Proxy
- •Паттерны поведения
- •Паттерны поведения
- •Iterator
- •Iterator
- •Iterator
- •Iterator
- •Iterator
- •Observer
- •Observer
- •Observer
- •Observer
- •Observer
- •Observer
- •Спасибо за внимание!
- •Дополнительные источники

Decorator
Особенности
Соответствие интерфейсов декоратора и декорируемого объектаВозможное отсутствие абстрактного класса декоратора
Облегчение, по возможности, декорируемого классаИзменяется «облик», а не внутренне устройство объекта
Самарский государственный аэрокосмический университет имени академика С.П. Королёва

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

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

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

Proxy
Применимость
Умная ссылказамена обычного указателя:
подсчет числа ссылок на реальный объектзагрузка объекта в память при первом
обращении к немупроверка и установка блокировки на реальный
объект при обращении к нему, чтобы никакой другой объект не смог в это время изменить его
Самарский государственный аэрокосмический университет имени академика С.П. Королёва

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

Паттерны поведения
Interpreter |
Грамматика и интерпретация языка |
Интерпретатор |
|
Iterator |
Способ обхода элементов агрегата |
Итератор |
|
Command |
Время и способ выполнения запроса за счет |
Команда |
заключения запроса в объект |
Observer |
Способ, которым зависимые объекты поддерживают |
Наблюдатель |
себя в актуальном состоянии |
Visitor |
Операции, которые можно применить к объекту |
Посетитель |
(добавление операций к объектам) |
Самарский государственный аэрокосмический университет имени академика С.П. Королёва 37

Паттерны поведения
Mediator |
Способ кооперации взаимодействующих объектов |
Посредник |
через промежуточный |
State |
Варьирование поведения объекта в зависимости |
Состояние |
от его состояния |
Strategy |
Заключение алгоритма в объект, возможность |
Стратегия |
замены алгоритмов |
Memento |
Закрытая информация, хранящаяся вне объекта, и |
Хранитель |
время ее сохранения |
Chain of |
Набор объектов, выполняющих запрос |
Responsibility |
|
Цепочка обязанностей |
|
Template Method |
Выделение в абстракцию шагов алгоритма |
Шаблонный метод |
|
Самарский государственный аэрокосмический университет имени академика С.П. Королёва 38

Iterator
Название и классификацияИтератор – паттерн поведения объектовНазначение
Предоставляет способ последовательного доступа ко всем элементам составного объекта, не раскрывая его внутреннего представления
Известен также под именемCursor
Самарский государственный аэрокосмический университет имени академика С.П. Королёва

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