Sobes.tech
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.