В настоящем пособии представлена основная группа паттернов объектно-ориентированного проектирования, сформулированная в работе авторов Э. Гамма, Р. Хелма, Р. Джонсона, Дж. Влиссидес и известная как «паттерны GoF» (GoF – сокр. от Gang of Four – «Союз Четырех»). Паттерны GoF классифицируются по двум параметрам:

1. Цель – назначение паттерна. По этому признаку различают следующие виды паттернов:

2. Уровень применимости – указывает, к чему применяется паттерн: к классам или объектам. Паттерны уровня классов описывают отношения между классами и их подклассами. Такие отношения выражаются с помощью наследования, поэтому они статичны, то есть зафиксированы на этапе компиляции. Паттерны уровня объектов описывают отношения между объектами, которые могут изменяться во время выполнения, и потому более динамичны. Почти все паттерны в какой-то мере используют наследование, поэтому к категории «Паттерны классов» отнесены только те, что сфокусированы лишь на отношениях между классами.

Классификацию паттернов GoF можно представить в следующем виде:

 

Цель

Уровень

Порождающие Структурные Поведения
Класс Фабричный Метод Адаптер

Интерпретатор

Шаблонный Метод

Объект

Абстрактная Фабрика

Одиночка

Прототип

Строитель

Адаптер

Декоратор

Заместитель

Компоновщик

Мост

Приспособленец

Фасад

Итератор

Команда

Наблюдатель

Посетитель

Посредник

Состояние

Стратегия

Хранитель

Цепочка Обязанностей