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.