Академический Документы
Профессиональный Документы
Культура Документы
Лабораторная работа № 4
по дисциплине: «IPP»
Тема: «Поведенческие шаблоны проектирования»
Проверил преподаватель: \
Кишинёв 2013
Цель работы
Изучение пяти поведенческих шаблонов проектирования. Создание приложения, которое
будет работать по данным шаблонам. Создать диаграммы классов.
Выполнение работы
Для данной лабораторной работы были выбраны данные шаблоны:
Итератор (Iterator);
Стратегия (Strategy);
Шаблонный метод (Template methodшаблонный метод);
Хранитель (Memento);
Посетитель (Visitor);
Данные шаблоны являются одними из самых известных среди порождающих шаблонов.
Некоторые из них имеют простую реализацию.
Шаблон «Итератор»
Представляет собой объект, позволяющий получить последовательный доступ к элементам
объекта-агрегата без использования описаний каждого из объектов, входящий в состав
агрегации.
Например, такие элементы как дерево, связанный список, хэш-таблица и массив могут быть
пролистаны (и модифицированы) с помощью паттерна (объекта) Итератор.
2
Рисунок 1 – Шаблон «Итератор»
Шаблон «Стратегия»
Поведенческий шаблон проектирования, предназначенный для определения семейства
алгоритмов, инкапсуляции каждого из них и обеспечения их взаимозаменяемости. Это позволяет
выбирать алгоритм путем определения соответствующего класса. Шаблон Strategy позволяет
менять выбранный алгоритм независимо от объектов-клиентов, которые его используют.
Отделение процедуры выбора алгоритма от его реализации. Это позволяет сделать выбор
на основании контекста.
Вначале создаём контекст и инициализируем его первой стратегией. Затем выполняем
операцию контекста, которая использует первую стратегию. Далее заменяем в контексте первую
стратегию второй. Выполняем операцию контекста, которая теперь использует вторую
стратегию.
3
Рисунок 2 – Шаблон «Стратегия»
Применимость:
Рассмотрим диаграмму шаблона «Шаблонный метод» (Рисунок 3). Данный шаблонный класс
схож на интерфейс. И представляет собой объект файла, наследуется два файла разных классов.
4
Рисунок 3 – Шаблон «Шаблонный метод»
Шаблон «Хранитель»
Хранитель — поведенческий шаблон проектирования, позволяющий, не нарушая
инкапсуляцию, зафиксировать и сохранить внутреннее состояния объекта так, чтобы позднее
восстановить его в это состояние.
Вначале мы создали необходимое нам состояние, затем сохранили его. Затем изменили его
статус. А далее восстановили прежнее состояние.
5
Шаблон «Посетитель»
Поведенческий шаблон проектирования, описывающий операцию, которая выполняется
над объектами других классов. При изменении Visitor нет необходимости изменять
обслуживаемые классы.
Если есть вероятность изменения иерархии обслуживаемого класса, либо она будет
нестабильной или открытый интерфейс достаточно эффективен для доступа шаблона, то его
использование будет вредоносным. Создается базовый класс Visitor с методами visit() для
каждого подкласса родительского Element. Добавьте метод accept(visitor) в иерархию Element.
Для каждой операции, которая должна выполняться для объектов Element, создайте производный
от Visitor класс. Реализации метода visit() должны использовать открытый интерфейс класса
Element. В результате: клиенты создают объекты Visitor и передают их каждому объекту Element,
вызывая accept().
По данному шаблону были созданые отдельный класс Девайсов и классы посетителей,
которые посещая предыдущие классы распечатывает их.
6
Вывод
В данной лабораторной работе были изучены поведенческие шаблоны проектирования,
такие как:
Итератор (Iterator);
Стратегия (Strategy);
Шаблонный метод (Template methodшаблонный метод);
Хранитель (Memento);
Посетитель (Visitor);
Для каждого шаблона была создана диаграмма, а также был реализован код по данным
диаграммам. У каждого шаблона есть свои плюсы и минусы, некоторые просты в реализации,
некоторые сложные. Каждый шаблон облегчает процесс создания программ и последующей его
поддержки.