Лекция 5. Паттерны проектирования программ.
Метапрограммирование и использование дженериков
5.1 Паттерны проектирования программ
Что такое шаблоны проектирования?
"Каждый паттерн описывает некую повторяющуюся проблему и ключ к ее
разгадке, причем таким образом, что этим ключом можно пользоваться при решении
самых разнообразных задач". Кристофер Александр.
Шаблоны проектирования (паттерн, pattern) — это эффективные способы
решения характерных задач проектирования, в частности проектирования
компьютерных программ.
Паттерн не является законченным образцом проекта, который может быть
прямо преобразован в код, скорее это описание или образец для того, как решить
задачу, таким образом, чтобы это можно было использовать в различных ситуациях.
История появления шаблонов проектирования
В этом же году Эрих Гамма заканчивает свою докторскую работу и переезжает
в США, где в сотрудничестве с Ричардом Хелмом (Richard Helm), Ральфом
Джонсоном (Ralph Johnson) и Джоном Влиссидсом (John Vlissides) публикует книгу
Design Patterns — Elements of Reusable Object-Oriented Software.
В этой книге описаны 23 шаблона проектирования. Также команда авторов этой
книги известна общественности под названием «Банда четырёх» (англ. Gang of Four,
часто сокращается до «GoF»). Именно эта книга стала причиной роста популярности
шаблонов проектирования.
Список Паттернов:
-
Порождающие паттерны:
1.
Abstract Factory (Абстрактная Фабрика),
2.
Builder (Строитель),
3.
Factory Method (Фабричный Метод),
4.
Prototype (Прототип),
93
5.
Singleton (Одиночка),
-
Структурные паттерны:
1.
Adapter (Адаптер),
2.
Bridge (Мост),
3.
Composite (Компоновщик),
4.
Decorator (Декоратор),
5.
Facade (Фасад),
6.
Flyweight (Приспособленец),
7.
Proxy (Заместитель),
-
Поведенческие паттерны:
1.
Chain of Responsibility (Цепочка Обязанностей),
2.
Command (Команда),
3.
Interpreter (Интерпретатор),
4.
Iterator (Итератор),
5.
Mediator (Посредник),
6.
Memento (Хранитель),
7.
Observer (Наблюдатель),
8.
State (Состояние),
9.
Strategy (Стратегия),
10.
Template Method (Шаблонный Метод),
11.
Visitor (Посетитель).
Для чего их использовать
Программные системы, построенные с использованием паттернов (шаблонов)
удобно сопровождать.
Как фигурист понимая, что он плохо исполняет определенный элемент танца,
концентрируется на отработке именно этого элемента, при этом не повторяя те
элементы, которые он исполняет хорошо, так и проектировщик программных систем,
концентрируется на определенном (проблемном) элементе системы (если
программная система построена с использованием шаблонов проектирования).
94
Формат описания паттернов проектирования
При рассмотрении паттернов проектирования используется единый формат
описания. Описание каждого шаблона состоит из следующих разделов:
–
Название:
Название паттерна (на Русском языке) отражающее его назначение. Также
известен как альтернативное название паттерна (если такое название имеется).
–
Классификация:
Классификация паттернов производится:
1.
по цели (порождающий, структурный или поведенческий);
2.
по применимости (к объектам и/или к классам).
–
Частота использования (рисунок 5.1):
Рисунок 5.1 – Частота использования паттернов
Формат описания паттернов проектирования:
–
Назначение.
Краткое описание назначения паттерна и задачи проектирования, решаемые с
его использованием.
–
Введение.
Описание паттерна с использованием метафор, позволяющих лучше понять
идею, лежащую в основе паттерна, в общем виде охарактеризовать специфические
аспекты использования паттерна проводя ассоциации с другими знакомыми
процессами, для формирования ясного представления механизма работы паттерна.
–
Структура паттерна на языке UML.
95
Графическое представление паттерна с использованием диаграмм классов
языка UML. На диаграммах показаны основные участники (классы) и связи
отношений между участниками.
–
Структура паттерна на языке Java.
Достарыңызбен бөлісу: |