Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Design patterns

.pdf
Скачиваний:
37
Добавлен:
09.05.2015
Размер:
1 Мб
Скачать
☆

Декоратор (Decorator)

●Предназначен для динамического подключения дополнительного поведения к объекту;

●предоставляет гибкую альтернативу практике создания подклассов с целью расширения функциональности;

●новую функциональность можно подключать до или после основной функциональности объекта ConcreteComponent.

21

Декоратор (Структура)

22

Поведенческие

паттерны

(Behavioral)

23

Поведенческие паттерны

(Behavioral)

●Определяют алгоритмы и способы реализации взаимодействия различных объектов и классов;

●используют наследование чтобы определить поведение для различных классов;

●Примеры:

○Наблюдатель

○Шаблонный метод

24

Задача 5

Спроектировать систему для разработки графического пользовательского интерфейса (GUI). Реализовать возможность генерации событий и реагирования на них.

25

Наблюдатель (Observer)

●Создает механизм у класса, который позволяет получать оповещения от других классов об изменении их состояния, тем самым наблюдая за ними;

●Определяет зависимость типа «один ко многим» между объектами таким образом, что при изменении состояния одного объекта все зависящие от него оповещаются об этом событии;

●инкапсулирует главный (независимый) компонент в абстракцию Subject и изменяемые (зависимые) компоненты в иерархию

Observer;

●определяет часть "View" в модели Model-View-Controller (MVC)

26

Наблюдатель (Структура)

27

Наблюдатель(Применение)

●Применяется в тех случаях, когда система обладает следующими свойствами:

○существует, как минимум, один объект, рассылающий сообщения;

○имеется не менее одного получателя сообщений, причём их количество и состав могут изменяться во время работы приложения;

○нет надобности очень сильно связывать взаимодействующие объекты, что полезно для повторного использования.

●Данный шаблон часто применяют в ситуациях, в которых отправителя сообщений не интересует, что делают получатели с предоставленной им информацией.

28

Задача 6

Спроектировать компьютерную игру, которая имеет игровой цикл, состоящий из трех фаз: обработка событий, логика и отрисовка. Система должна позволять изменять фазы игрового цикла, но не

должна позволять изменять структуру игрового цикла.

29

Шаблонный метод(Template method)

●Определяет основу алгоритма;

●позволяет наследникам переопределять некоторые шаги алгоритма, не изменяя его структуру в целом.

Паттерн следует использовать, если необходимо:

●Однократное использование инвариантной части алгоритма, с оставлением изменяющейся части на усмотрение наследникам;

●Локализация и вычленение общего для нескольких классов кода для избегания дублирования;

●Разрешение расширения кода наследниками только в определенных местах.

30

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]