Перекрестные зависимости -- взаимозависимости в коде/архитектуре программных систем

Перекрестные зависимости -- В общем случае: ситуация когда в своей работе некая сущность $A$ (модуль, класс -- в зависимости от уровня) опирается на возможности сущности $B$, а сущность $B$ опирается на функционал (возможности) $A$.

В такой ситуации отдельно использовать их (например в рамках других систем) не получится, и хотя декомпозиция присутствует (раз уж мы их как-то различаем), но связность не минимальна -- а на сколько она велика зависит уже от уровня абстракции (контекста):

  • Ведь если речь идёт о двух классах, где ни один метод не может отработать без какого-то другого метода из второго класса -- то это очень сильная связность (намертво, навеки вместе) -- для уменьшения связности до минимума в такой ситуцаии на этом уровне абстракции нужно вообще переписать всё.
  • А если речь идёт о взаимозависимости лишь пары методов из многих в обоих классах -- то тут она не так страшна, нужно переписать лишь часть
  • Если же мы говорим, что двух модулях, в которых есть пара таких классов -- то связность незначительно (нетрудно исправить её, по сравнению с тем чтобы заново написать модули, переписываемая часть относительно весьма мала).