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.