Sobes.tech
Junior — Middle

Care este rolul adnotării @Provides în contextul Injectării de Dependințe și care este scopul său?

sobes.tech AI

Răspuns de la AI

A adnotare @Provides este utilizată în bibliotecile de injecție de dependențe (de exemplu, Dagger în Android) pentru a marca metodele care creează și furnizează dependențe. Astfel de metode se află de obicei în module (@Module) și sunt responsabile pentru crearea obiectelor care vor fi injectate în alte părți ale aplicației.

De exemplu, dacă aveți o clasă care depinde de un anumit serviciu, puteți scrie o metodă cu @Provides care va crea acest serviciu și va permite framework-ului DI să îl transmită automat acolo unde este nevoie.

Exemplu:

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

Astfel, @Provides servește pentru a indica explicit modul de creare a dependențelor care nu pot fi create automat prin constructori.