Практические решения, в свою очередь, подразделяются на порождающие шаблоны, структурные и шаблоны поведения.
1. Структурные шаблоны (structural patterns) – показывают, как объекты и классы объединяются для образования сложных структур.
2. Порождающие шаблоны (creational patterns) – контролируют процесс создания и жизненный цикл объектов.
3. Шаблоны поведения (behavioral patterns) – используются для организации, управления и объединения различных вариантов поведения объектов.
Каждый шаблон проектирования описывает задачи, с которыми программисту часто приходится сталкиваться. И затем описывает основу решения этой задачи таким образом, что позволяет воплотить это решение при разработке других программ, ни разу не повторившись.