Что такое "модули высокого уровня" и "модули низкого уровня" (в контексте принципа инверсии зависимости)?
Я читал определение принципа инверсии зависимостей в Википедии, в котором используются два термина: модули высокого уровня и модули низкого уровня, которые я не смог понять.
Что это такое и какое отношение имеет принцип обращения зависимостей?
3 ответа
Их определение дано во вступительном предложении:
высокий уровень: установление политики
низкий уровень: модули зависимости.
С точки зрения непрофессионалов: модули высокого уровня зависят от модулей низкого уровня, но не должны зависеть от их реализации. Это может быть достигнуто с помощью интерфейсов, таким образом, отделяя определение сервиса от реализации.
Это объясняется здесь:https://softwareengineering.stackexchange.com/a/419630
Модули низкого уровня являются «низкоуровневыми», потому что они не имеют зависимостей или не имеют соответствующих зависимостей. Очень часто их можно легко повторно использовать в разных контекстах без введения каких-либо отдельных формальных интерфейсов — это означает, что их повторное использование является прямым, простым и не требует какой-либо инверсии зависимостей.
Модули высокого уровня , однако, являются «высокоуровневыми», поскольку для их работы требуются другие модули более низкого уровня . Но если они привязаны к конкретной низкоуровневой реализации, это часто мешает повторно использовать их в другом контексте.
- Модуль низкого уровня - это программа, написанная для решения конкретной проблемы (расчет НДС на основе кода страны)
- Модуль высокого уровня - это программа, написанная для решения общей проблемы (доступ к базе данных)