Middle+
Miért használjuk a Binds-t, ha már létezik a Provide?
sobes.tech MI
Válasz az MI-től
@Binds a Daggerben arra szolgál, hogy egy interfészt vagy absztrakt osztályt egy konkrét implementációhoz köt össze, amikor az implementáció már jelen van a függőségi gráfban. Hatékonyabb kódot generál, mint a @Provides, mivel nem igényel külön példány létrehozását.
A @Provides olyan példányokat hoz létre, amelyeket nem lehet singleton vagy konstruktoros injekcióval biztosítani. Például több más függőségből származó objektum létrehozására vagy külső könyvtár konfigurálására használható.
Az @Binds használata az @Provides helyett egyszerű "interfész -> implementáció" esetekben csökkenti a generált kód mennyiségét, így gyorsabb fordítást eredményez.