Sobes.tech
Junior — Middle

Qual è il ruolo dell'annotazione @Provides nel contesto dell'iniezione delle dipendenze e a cosa serve?

sobes.tech AI

Risposta dell'AI

L'annotazione @Provides viene utilizzata nelle librerie di Dependency Injection (ad esempio, Dagger in Android) per contrassegnare i metodi che creano e forniscono dipendenze. Questi metodi si trovano generalmente nei moduli (@Module) e sono responsabili della creazione di oggetti che verranno iniettati in altre parti dell'applicazione.

Ad esempio, se hai una classe che dipende da un servizio, puoi scrivere un metodo con @Provides che crea questo servizio e permette al framework di DI di passararlo automaticamente dove necessario.

Esempio:

@Module
public class NetworkModule {
    @Provides
    Retrofit provideRetrofit() {
        return new Retrofit.Builder()
            .baseUrl("https://api.example.com")
            .build();
    }
}

In questo modo, @Provides serve a indicare esplicitamente come creare dipendenze che non possono essere create automaticamente tramite i costruttori.