Карточка Middle Clean Architecture и слои обновлено

Инверсия зависимостей

Вопрос

Что такое принцип инверсии зависимостей (DIP) на примере мобильного приложения?

Попробуйте сами

Ответьте про себя или вслух, потом откройте ответ и сверьтесь.

Показать ответ и разбор

Коротко

Модули верхнего уровня (use case) зависят от абстракций (interface UserRepository), а не от реализаций (RetrofitUserRepository). Реализация зависит от той же абстракции и подставляется через DI.

Ответ

Модули верхнего уровня (use case) зависят от абстракций (interface UserRepository), а не от реализаций (RetrofitUserRepository). Реализация зависит от той же абстракции и подставляется через DI.

Разбор

Отсюда тестируемость: в тесте use case получает фейковый репозиторий.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.