Зависимости в проектировании могут влиять на переиспользование кода следующим образом:
- Усложнение разработки переиспользуемых компонентов. 1 Необходимо понять, из каких частей состоят компоненты и какие из них могут меняться. 1 Если сделать все части изменяемыми, то получится огромное количество абстракций, в которых сложно разобраться. 1 Если же изменяемых частей будет слишком мало, то компонент получится недостаточно гибким. 1
- Необходимость в сложной структуре. 1 Если требуется серьёзная кастомизация, то придётся пересобрать все зависимости компонента. 1 Для этого нужно глубоко понимать, из каких частей он состоит. 1
- Увеличение стоимости изменения кода. 3 Чем в меньшем количестве мест в коде используется некоторый класс или интерфейс, тем меньше стоимость его изменения или ошибки в его реализации. 3
Однако зависимости сами по себе не являются чем-то плохим, пока они используются в ограниченном количестве мест. 3 В таком случае зависимости позволяют легко сопровождать код и писать для него юнит-тесты. 3
Чтобы минимизировать негативное влияние зависимостей на переиспользование кода, при проектировании важно соблюдать принципы, такие как ацикличность зависимостей, стабильные зависимости и стабильность абстракций. 4