Sobes.tech
Middle+

Защо да използваме Binds, ако вече съществува Provide?

sobes.tech AI

Отговор от AI

@Binds се използва за свързване на интерфейс или абстрактен клас с конкретна реализация в Dagger, когато реализацията вече присъства в графа на зависимостите. Той генерира по-ефективен код от @Provides, тъй като не изисква създаването на отделен обект.

@Provides се използва за създаване на екземпляри на обекти, които не могат да бъдат предоставени чрез сингълтон или конструктор с инжектиране на зависимости. Например, за създаване на обект от няколко други зависимости или за конфигуриране на външна библиотека.

Използването на @Binds вместо @Provides в прости случаи "интерфейс -> реализация" води до намаляване на генерирания код и, като следствие, до по-бързо компилиране.