Używam Unity w języku C # do wstrzykiwania zależności, ale pytanie powinno mieć zastosowanie do każdego języka i struktury używającej wstrzykiwania zależności.
Staram się przestrzegać zasady SOLID, dlatego otrzymałem wiele abstrakcji. Ale teraz zastanawiam się, czy istnieje najlepsza praktyka dla liczby zastrzyków, które jedna klasa powinna wstrzyknąć?
Na przykład mam repozytorium z 9 zastrzykami. Czy będzie to trudne do odczytania dla innego programisty?
Zastrzyki mają następujące obowiązki:
- IDbContextFactory - tworzenie kontekstu dla bazy danych.
- IMapper - Mapowanie od encji do modeli domen.
- IClock - Abstracts DateTime.Now, aby pomóc w testach jednostkowych.
- IPerformanceFactory - mierzy czas wykonania dla określonych metod.
- ILog - Log4net do logowania.
- ICollectionWrapperFactory - Tworzy kolekcje (które rozszerzają IEnumerable).
- IQueryFilterFactory - Generuje zapytania na podstawie danych wejściowych, które będą wykonywać zapytania do bazy danych db.
- IIdentityHelper - pobiera zalogowanego użytkownika.
- IFaultFactory - Utwórz różne wyjątki błędów (używam WCF).
Tak naprawdę nie jestem zawiedziony tym, jak przekazałem obowiązki, ale zaczynam się martwić o czytelność.
Więc moje pytania:
Czy istnieje limit liczby zastrzyków, które klasa powinna mieć? A jeśli tak, jak tego uniknąć?
Czy wiele zastrzyków ogranicza czytelność, czy faktycznie to poprawia?