Выбор ответа Senior Архитектура: MVVM, MVI, Clean обновлено
Направление зависимостей в Clean Architecture
Вопрос
Как направлены зависимости между модулями domain и data в Clean Architecture?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: data зависит от domain: domain объявляет интерфейсы, data их реализует. Бизнес-логика в центре не должна знать о деталях: domain описывает интерфейс FeedRepository, а data реализует его на Retrofit и Room и зависит от domain.
Варианты ответа
domainзависит отdata, чтобы use case мог напрямую вызывать Retrofit и Roomdataзависит отdomain: domain объявляет интерфейсы, data их реализуетправильный ответ- Модули не зависят друг от друга, их связывает только общий модуль
:core:model - Оба зависят от
presentation, потому что именно он задаёт нужные модели
Разбор
Бизнес-логика в центре не должна знать о деталях: domain описывает интерфейс FeedRepository, а data реализует его на Retrofit и Room и зависит от domain. Это инверсия зависимостей. Связывает реализацию с интерфейсом DI. Если domain зависит от data, бизнес-логика тянет за собой фреймворки, а presentation находится на внешнем слое и ни от кого внутри не требуется.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.