Sobes.tech
Junior — Middle

Qual é o papel dos módulos no Dagger e por que são necessários na injeção de dependências?

sobes.tech IA

Resposta da IA

Os módulos no Dagger servem para fornecer dependências que não podem ou não é conveniente criar automaticamente através de construtores. Eles contêm métodos com a anotação @Provides, que descrevem como criar um objeto específico. Isto permite gerir centralizadamente a criação e configuração de dependências, por exemplo, objetos com construtores não padrão ou que requerem parâmetros.

Sem módulos, o Dagger não conseguiria saber como criar certos tipos de objetos, especialmente se não tiverem construtores anotados ou requererem lógica de criação complexa.

Exemplo de módulo:

@Module
public class NetworkModule {
    @Provides
    OkHttpClient provideOkHttpClient() {
        return new OkHttpClient.Builder()
            .connectTimeout(30, TimeUnit.SECONDS)
            .build();
    }
}