Что такое транзитивность

«Что такое транзитивность» — вопрос из категории ООП, который задают на 24% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Транзитивность в контексте зависимостей Gradle означает, что если модуль A зависит от модуля B, а модуль B зависит от модуля C, то модуль A автоматически получает зависимость от модуля C.

Пример:

// moduleA зависит от moduleB
implementation 'com.example:moduleB:1.0'  
// moduleB зависит от moduleC  

В этом случае moduleA получит и moduleC транзитивно.

Как управлять:
Можно явно исключить транзитивную зависимость:

implementation('com.example:moduleB:1.0') {  
    exclude group: 'com.example', module: 'moduleC'  
}  

Или отключить транзитивность полностью:

implementation('com.example:moduleB:1.0') {  
    transitive = false  
}