Случайно познакомился:
https://ru.wikipedia.org/wiki/GRASPЗанятный маленький (9 штук) и достаточно покрывающий практику перечень паттернов распределения обязанностей.
Я вот так и не "подсел" на традиционный ассортимент паттернов ("банда четырёх" и их продолжатели), предпочитая работать custom-но к каждой конкретной задаче, инуитивно разделяя обязанности между типами и компонентами, на основе какой-то общей "чуйки" типа ослабления связанности, перебора разных вариантов при всех возможных inversion of control для данного множества объектов - и выборе лучшего для данного случая и т.п. Т.е. было ощущение, что можно найти более общие принципы, на основе которых паттерн родится "под задачу", а не будет выбираться из каталога образцов.
Я бы не сказал, что GRASS тянет на окончательно-фундаментальные "максимы" для разделения обязанностей в архитектуре, но в целом идёт в нужном направлении, как мне кажется.