Sobes.tech
Junior — Middle

Jaká je role anotace @Provides v kontextu Dependency Injection a k čemu slouží?

sobes.tech AI

Odpověď od AI

Anotace @Provides se používá v knihovnách pro injekci závislostí (například Dagger v Androidu) k označení metod, které vytvářejí a poskytují závislosti. Tyto metody se obvykle nacházejí v modulech (@Module) a jsou odpovědné za vytváření objektů, které budou injektovány do jiných částí aplikace.

Například, pokud máte třídu, která závisí na určité službě, můžete napsat metodu s @Provides, která tuto službu vytvoří a umožní DI frameworku ji automaticky předat tam, kde je potřeba.

Příklad:

@Module
public class NetworkModule {
    @Provides
    Retrofit provideRetrofit() {
        return new Retrofit.Builder()
            .baseUrl("https://api.example.com")
            .build();
    }
}

Tímto způsobem @Provides slouží k explicitnímu určení, jak vytvářet závislosti, které nelze automaticky vytvořit přes konstruktory.