Junior — Middle
Kokia yra @Provides anotacijos vaidmuo Dependency Injection kontekste ir kam ji tarnauja?
sobes.tech AI
Atsakymas iš AI
@Provides anotacija naudojama priklausomybių injekcijos bibliotekose (pavyzdžiui, Dagger Android) norint pažymėti metodus, kurie kuria ir teikia priklausomybes. Tokie metodai dažniausiai yra moduliuose (@Module) ir atsakingi už objektų kūrimą, kurie bus injekuojami į kitus programos dalis.
Pavyzdžiui, jei turite klasę, kuri priklauso nuo tam tikros paslaugos, galite parašyti metodą su @Provides, kuris sukurs tą paslaugą ir leis DI karkasui automatiškai perduoti ją ten, kur jos reikia.
Pavyzdys:
@Module
public class NetworkModule {
@Provides
Retrofit provideRetrofit() {
return new Retrofit.Builder()
.baseUrl("https://api.example.com")
.build();
}
}
Taip @Provides aiškiai nurodo, kaip kurti priklausomybes, kurios negali būti automatiškai sukurtos per konstruktorius.