2015-05-13 14 views
19

Wiem, że Dagger jest strukturą wtrysku zależności, ale wciąż nie używam go w moich projektach.Kiedy używać Dagger w aplikacji na Androida?

Rozpoczynam nowy projekt i zastanawiam się, czy Dagger nadaje się do tego. O ile rozumiem, użycie Dagger prowadzi do wielu kodów i adnotacji. Więc nie jestem pewien, czy to nie jest przesada dla mojego stosunkowo prostego projektu.

Trochę o projekcie. Koncentruje się na przetwarzaniu obrazu, a główna część funkcjonalności jest zbudowana wokół niego. Prawdopodobnie jednak będzie mieć również prosty backend do przechowywania danych.

Ogólnie, chciałbym poznać kilka podstawowych zasad, które mogę użyć, aby wybrać użycie Sztyletu do projektu lub nie.

Odpowiedz

17

podstawową wiedzę:

Przypuśćmy, że chcesz przetestować aplikację, która zajmuje się obsługą kart Credit. Do celów testowych nie możesz chcieć uzyskać dostępu do prawdziwej RPCCreditCardService, ponieważ będą potrzebne prawdziwe transakcje i inne treści, których nie chcesz wykonywać podczas programowania. W takim przypadku musisz stworzyć fałszywą usługę klona, ​​która będzie naśladować to samo, co prawdziwa usługa CreditCardService, ale niczego nie zawierusza. Jeśli korzystasz ze schematu wtrysku zależności, możesz zdefiniować typowe zadania w zależności i wstrzyknąć je zarówno w fałszywą, jak i rzeczywistą usługę. Minimalizuje to złożoność kodowania, a także pomaga uniezależnić każdy moduł.

Z dokumentacji:

Dzięki zastosowaniu ramy wtrysku zależność, każda klasa jest łatwo przetestować. Nie potrzebujesz kilku kart katalogowych tylko po to, aby zamienić kartę RpcCreditCardService na FakeCreditCardService.

Wstrzyknięcie zależne nie służy tylko do testowania. Ułatwia także tworzenie modułów wielokrotnego użytku i wymiennych. Możesz udostępniać ten sam moduł uwierzytelniania we wszystkich aplikacjach. I możesz uruchomić DevLoggingModule podczas tworzenia i ProdLoggingModule w produkcji, aby uzyskać właściwe zachowanie w każdej sytuacji.

referencyjny:

Dla lepszego zrozumienia można sprawdzić this discussion.

+1

Pytanie dotyczyło wstrzyknięcia Daggera, a nie zależności. –

+3

Sztylet jest strukturą wtrysku zależności – Idee

Powiązane problemy