Middle+
Proč používat Binds, když již existuje Provide?
sobes.tech AI
Odpověď od AI
@Binds se používá k propojení rozhraní nebo abstraktní třídy s konkrétní implementací v Daggeru, když je implementace již přítomna v grafu závislostí. Generuje efektivnější kód než @Provides, protože nevyžaduje vytváření samostatného objektu.
@Provides se používá k vytváření instancí objektů, které nelze poskytnout přes singleton nebo konstruktor s injekcí závislostí. Například k vytvoření objektu z několika dalších závislostí nebo k nastavení třetí knihovny.
Použití @Binds místo @Provides v jednoduchých případech "rozhraní -> implementace" vede ke snížení generovaného kódu a tím i k rychlejší kompilaci.