Junior — Middle
Explique o princípio de funcionamento e a estrutura da biblioteca Dagger para injeção de dependências
sobes.tech IA
Resposta da IA
Dagger é uma biblioteca para injeção de dependências (Dependency Injection, DI) em aplicações Android e Java. Permite fornecer automaticamente os objetos necessários (dependências) nas classes, reduzindo o acoplamento e simplificando os testes.
Princípio de funcionamento:
- Dagger usa anotações para descrever as dependências.
- Na fase de compilação, é gerado código que cria e liga os objetos.
- Isso garante alto desempenho e ausência de reflexão em tempo de execução.
Componentes principais:
@Module— classe que fornece dependências através de métodos anotados com@Provides.@Component— interface que conecta módulos e pontos de injeção, criando um grafo de dependências.@Inject— anotação que indica onde injetar a dependência (por exemplo, no construtor ou campo).
Exemplo:
@Module
class NetworkModule {
@Provides
Retrofit provideRetrofit() {
return new Retrofit.Builder()
.baseUrl("https://api.example.com")
.build();
}
}
@Component(modules = NetworkModule.class)
interface AppComponent {
void inject(MainActivity activity);
}
public class MainActivity extends AppCompatActivity {
@Inject
Retrofit retrofit;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
DaggerAppComponent.create().inject(this);
// Agora o retrofit está pronto para uso
}
}
Assim, o Dagger ajuda a gerenciar as dependências de forma centralizada e eficiente, melhorando a arquitetura da aplicação.