Sobes.tech
Middle+

Po co używać Binds, skoro istnieje już Provide?

sobes.tech AI

Odpowiedź od AI

@Binds jest używany do powiązania interfejsu lub klasy abstrakcyjnej z konkretną implementacją w Dagger, gdy implementacja jest już obecna w grafie zależności. Generuje on bardziej wydajny kod niż @Provides, ponieważ nie wymaga tworzenia osobnego egzemplarza obiektu.

@Provides służy do tworzenia instancji obiektów, które nie mogą być dostarczone przez singleton lub konstruktor z wstrzykiwaniem zależności. Na przykład, do tworzenia obiektu z kilku innych zależności lub do konfiguracji biblioteki zewnętrznej.

Użycie @Binds zamiast @Provides w prostych przypadkach "interfejs -> implementacja" prowadzi do zmniejszenia wygenerowanego kodu i, w konsekwencji, do szybszego kompilowania.