Пользовательский интерфейс в зависимости от уровня бизнес-логики нарушает принцип инверсии зависимости?
Принцип инверсии зависимостей гласит: модули высокого уровня не должны зависеть от модулей низкого уровня.
Имея это в виду, мой старый:
UI -> Business Logic Layer -> Data Access Layer
стал
UI -> Business Logic Layer <- Data Access Layer
Я сохранил пользовательский интерфейс в зависимости от уровня бизнес-логики, чтобы можно было легко подключить другую реализацию пользовательского интерфейса. Мой уровень бизнес-логики - это мозг.
Но нарушает ли это принцип инверсии зависимости? Пользовательский интерфейс выше, чем Business Logic, верно?
Спасибо за помощь.
1 ответ
Модули высокого или низкого уровня в Deverdecy Inversion относятся к деталям реализации. Взять, к примеру, его принципы. Принцип гласит:
A. Модули высокого уровня не должны зависеть от модулей низкого уровня. Оба должны зависеть от абстракций.
Б. Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций.
Не имеет значения, какие модули или уровни учитываются при оценке принципа инверсии зависимости. Вы можете иметь пользовательский интерфейс высокого уровня и пользовательский интерфейс низкого уровня. Суть этого принципа в том, что ваш высокоуровневый пользовательский интерфейс не должен полагаться на низкоуровневый уровень бизнес-логики, все остальное среди высокоуровневых модулей в порядке.