Классификация паттернов

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

Самые низкоуровневые и простые паттерны — идиомы. Они не очень универсальные, так как применимы только в рамках одного языка программирования.

Самые универсальные — архитектурные паттерны, которые можно реализовать практически на любом языке. Они нужны для проектирования всей программы, а не отдельных её элементов.