Один из способов борьбы с зависимостью модуля от предыдущих обращений — создание рутинных модулей, то есть таких, результат работы которых зависит только от количества переданных параметров, а не от количества обращений. 1
Также есть рекомендации по работе с модулями, которые зависят от предыстории: 1
- Использовать такие модули только в случаях, когда это необходимо для сцепления по данным. 1
- Чётко формулировать зависимость в спецификации модуля, чтобы пользователи могли прогнозировать его поведение. 1
Ещё несколько подходов, которые могут помочь в работе с зависимостями модулей:
- Внедрение интерфейсов на границах модулей. 4 Тогда будет возможность подменять зависимости разными реализациями. 4
- Использование обмена сообщениями или событий. 5 В этом случае модулям не нужно содержать прямые ссылки и взаимодействовать непосредственно, достаточно обмениваться сообщениями или событиями. 5
- Применение паттерна «Посредник». 5 Он выступает в качестве посредника в общении между модулями и избавляет их от необходимости явно ссылаться друг на друга. 5