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.