Junior — Middle
Magyarázza el az @Binds annotáció célját és működését a Dependency Injection kontextusában.
sobes.tech MI
Válasz az MI-től
A @Binds annotációt a Dagger (Függőséginjektálás) használja az interfész és annak implementációjának összekapcsolására anélkül, hogy gyári módszereket kellene írni.
Ez absztrakt modulokban alkalmazható, és lehetővé teszi, hogy megadja, amikor egy interfész függőségét kérik, egy konkrét implementációt kell biztosítani.
Példa:
@Module
abstract class NetworkModule {
@Binds
abstract ApiService bindApiService(ApiServiceImpl impl);
}
Itt az ApiService egy interfész, az ApiServiceImpl pedig a megvalósítása. A Dagger automatikusan létrehoz egy kötést, hogy az ApiService kérésére az ApiServiceImpl legyen biztosítva.
Ez egyszerűsíti a kódot, olvashatóbbá teszi, és kiküszöböli annak szükségességét, hogy @Provides módszereket írjunk, ha a megvalósítás már létezik.