Junior — Middle
Каква е ролята на анотацията @Provides в контекста на Dependency Injection и за каква цел служи?
sobes.tech AI
Отговор от AI
Annotations @Provides се използва в библиотеки за внедряване на зависимости (например Dagger в Android), за да обозначи методи, които създават и предоставят зависимости. Тези методи обикновено се намират в модули (@Module) и отговарят за създаването на обекти, които ще бъдат инжектирани в други части на приложението.
Например, ако имате клас, който зависи от определена услуга, можете да напишете метод с @Provides, който ще създаде тази услуга и ще позволи на DI рамката автоматично да я предаде там, където е необходима.
Пример:
@Module
public class NetworkModule {
@Provides
Retrofit provideRetrofit() {
return new Retrofit.Builder()
.baseUrl("https://api.example.com")
.build();
}
}
По този начин, @Provides служи за явно указване как да се създадат зависимости, които не могат да бъдат създадени автоматично чрез конструктори.