Вот ответ немного абстрактного теоретического графа:
Давайте упростим задачу, посмотрев только на (направленные) графы зависимостей между объектами с состоянием.
Чрезвычайно простой ответ можно проиллюстрировать, рассмотрев два предельных случая графов зависимостей:
1-й предельный случай : кластерные графы .
Граф кластеров является наиболее совершенной реализацией графа зависимостей с высокой когезией и низкой связью (с учетом набора размеров кластера).
Зависимость между кластерами максимальна (полностью связна), а межкластерная зависимость минимальна (ноль).
Это абстрактная иллюстрация ответа в одном из предельных случаев .
2-й предельный случай - это полностью связный граф, где все зависит от всего.
Реальность где-то посередине, чем ближе к кластерному графу, тем лучше, по моему скромному пониманию.
С другой точки зрения : при взгляде на ориентированный граф зависимостей в идеале он должен быть ациклическим, если нет, то циклы образуют наименьшие кластеры / компоненты.
Один шаг вверх / вниз по иерархии соответствует «одному случаю» слабой связи, тесной сплоченности в программном обеспечении, но этот принцип слабой связи / тесной сплоченности можно рассматривать как повторяющиеся явления на разных глубинах ациклического ориентированного графа (или один из его связующего дерева).
Такое разложение системы на иерархию помогает преодолеть экспоненциальную сложность (скажем, в каждом кластере 10 элементов). Тогда на 6 слоях это уже 1 миллион объектов:
10 кластеров образуют 1 сверхскопление, 10 сверхскоплений образуют 1 сверхкластер и т. Д. ... без концепции тесной сплоченности, слабой связи такая иерархическая архитектура была бы невозможна.
Таким образом, это может быть реальной важностью истории, а не только низкой связью высокой когезии только в двух слоях. Реальная важность становится ясной при рассмотрении абстракций более высокого уровня и их взаимодействия.