Junior — Middle
Jaka jest rola adnotacji @Provides w kontekście wstrzykiwania zależności i do czego służy?
sobes.tech AI
Odpowiedź od AI
Adnotacja @Provides jest używana w bibliotekach wstrzykiwania zależności (np. Dagger w Android) do oznaczania metod, które tworzą i dostarczają zależności. Takie metody zazwyczaj znajdują się w modułach (@Module) i odpowiadają za tworzenie obiektów, które będą wstrzykiwane do innych części aplikacji.
Na przykład, jeśli masz klasę, która zależy od pewnej usługi, możesz napisać metodę z @Provides, która utworzy tę usługę i pozwoli frameworkowi DI automatycznie przekazać ją tam, gdzie jest potrzebna.
Przykład:
@Module
public class NetworkModule {
@Provides
Retrofit provideRetrofit() {
return new Retrofit.Builder()
.baseUrl("https://api.example.com")
.build();
}
}
W ten sposób @Provides służy do jawnego wskazania, jak tworzyć zależności, które nie mogą być tworzone automatycznie przez konstruktory.