Sobes.tech
Junior — Middle

Aká je úloha anotácie @Provides v kontexte Dependency Injection a na aký účel slúži?

sobes.tech AI

Odpoveď od AI

Anotácia @Provides sa používa v knižniciach na injektovanie závislostí (napríklad Dagger v Android) na označenie metód, ktoré vytvárajú a poskytujú závislosti. Takéto metódy sa zvyčajne nachádzajú v moduloch (@Module) a sú zodpovedné za vytváranie objektov, ktoré budú injektované do iných častí aplikácie.

Napríklad, ak máte triedu, ktorá závisí od určitej služby, môžete napísať metódu s @Provides, ktorá túto službu vytvorí a umožní DI frameworku ju automaticky odovzdať tam, kde je potrebná.

Príklad:

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

Týmto spôsobom @Provides slúži na explicitné určenie, ako vytvárať závislosti, ktoré nemôžu byť automaticky vytvorené cez konštruktory.