В настоящем пособии представлена основная группа паттернов объектно-ориентированного проектирования, сформулированная в работе авторов Э. Гамма, Р. Хелма, Р. Джонсона, Дж. Влиссидес и известная как «паттерны GoF» (GoF – сокр. от Gang of Four – «Союз Четырех»). Паттерны GoF классифицируются по двум параметрам:
1. Цель – назначение паттерна. По этому признаку различают следующие виды паттернов:
2. Уровень применимости – указывает, к чему применяется паттерн: к классам или объектам. Паттерны уровня классов описывают отношения между классами и их подклассами. Такие отношения выражаются с помощью наследования, поэтому они статичны, то есть зафиксированы на этапе компиляции. Паттерны уровня объектов описывают отношения между объектами, которые могут изменяться во время выполнения, и потому более динамичны. Почти все паттерны в какой-то мере используют наследование, поэтому к категории «Паттерны классов» отнесены только те, что сфокусированы лишь на отношениях между классами.
Классификацию паттернов GoF можно представить в следующем виде:
Цель Уровень |
Порождающие | Структурные | Поведения |
Класс | Фабричный Метод | Адаптер | |
Объект |