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();
}
}