Тема есть в универе, хотелось бы разобраться подробнее
Существует множество различных классификаций паттернов проектирования. В целом их делят на 3 категории: Порождающие паттерны, Структурные паттерны и Поведенческие паттерны.
Порождающие - те, которые описывают процесс порождения объектов,
Структурные - те, которые описывают классы и объекты в контексте одной структуры,
Поведенческие - те, которые описывают взаимодействие между классами и объектами, их поведение касательно друг друга.