Sobes.tech
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.