Dagger2 - Wstrzykiwanie tego samego typu. Named i IntoSet.

Kliknij i wspomóż mnie :)

Android

Wstęp

Ten materiał jest częścią kursu Dagger2 w Android na platformie Udemy. Omawiam tam krok po kroku wprowadzenie oraz używanie biblioteki Dagger2 służącej do wstrzykiwania zależności.

Kilka darmowych odcinków można znaleźć tutaj:

Kurs Dagger2 w Android

Problem

Wstrzyknięcie pierwszych klas jest bardzo proste. Zwykle potrzebny jest nam tylko komponent oraz adnotacja @Inject.

Jeśli klasy nie implementują tych samych interfejsów to nawet nie dostrzeżemy, że taki problem może wystąpić.

Co jednak, kiedy chcielibyśmy doprowadzić np. różne Stringi?

Na początek adnotacja @Named

Dość szybko można rozwiązać ten problem stosując wbudowaną adnotację @Named(_name_).

I tak długo jak będziemy w stanie opisać różne implementacje to użycie powyższej adnotacji może stanowić remedium na problem.

Trzeba tylko pamiętać, żeby po stronie wstrzykiwania także oznaczyć nasze implementacje.

Brak pomysłów i adnotacja @IntoSet

Adnotacja @Named ma dwie główne wady:

  • Trzeba wymyślać nazwy dla każdej implementacji
  • Nie można w kodzie decydować o dostarczeniu

I tak cała na biało wchodzi adnotacja @IntoSet. Pozwala ona stworzyć zbiór tych samych typów i później w kodzie określić, który potrzebujemy.

Po stronie aktywności deklarujemy to tak:

W zależności od tego czy użytkownik posiada dostęp do internetu, program wybiera odpowiednie źródło danych.

Zakończenie

Te dwa rozwiązania powinny pomóc na większość sytuacji podczas programowania z Daggerem.

Do głowy przychodzi mi jeszcze adnotacja @Scope czyli nadawanie zakresów, ale jest to temat zdecydowanie na inny materiał 😉

Gdyby zainteresował Cię temat wstrzykiwania zależności to jeszcze raz zachęcam do sprawdzenia kursu 🤓. No daj znać innym 😎

Dziękuję Ci za przeczytanie tego materiału 😀 Jeżeli spodobało Ci się to o czym piszę, możesz sprawdzić więcej materiałów na blogu lub udostępnić znajomym. Będzie mi bardzo miło 😊

O mnie

Jestem młodym programistą, który dumnie dzierży wiele pasji takich jak bieganie czy piwowarstwo domowe. Jedną z nich jest także programowanie i o tym właśnie zamierzam tutaj pisać.

Zobacz więcej

Najnowsze posty

Kliknij i wspomóż mnie :)

Zostańmy w kontakcie

* Wymagane
Kliknij i wspomóż mnie :)
shop
Otwórz Sklep Play

Zachęcam Cię do odwiedzenia mojej strony na Google Play store i sprawdzenia wszystkich moich aplikacji.