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