Как Clean Architecture связана с многомодульностью

«Как Clean Architecture связана с многомодульностью» — вопрос из категории Архитектура, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Clean Architecture и многомодульность дополняют друг друга, обеспечивая лучшее разделение ответственности и масштабируемость.

Связь:

  • Слои Clean Architecture (domain, data, presentation) можно вынести в отдельные модули, что улучшает инкапсуляцию.
  • Domain-модуль содержит бизнес-логику и entities, не зависит от других слоев.
  • Data-модуль реализует репозитории, зависит только от domain.
  • Presentation-модуль (UI) зависит от domain и data.

Пример структуры модулей:

// settings.gradle  
include ':app', ':domain', ':data'  

// domain/build.gradle  
dependencies {  
    implementation 'javax.inject:javax.inject:1'  
}  

// data/build.gradle  
dependencies {  
    implementation project(':domain')  
}  

// app/build.gradle  
dependencies {  
    implementation project(':data')  
    implementation project(':domain')  
}  

Плюсы:

  • Четкие границы зависимостей.
  • Упрощение тестирования (модули тестируются изолированно).
  • Ускорение сборки за счет кэширования модулей.