Ich verwende Unity in C # für die Abhängigkeitsinjektion, aber die Frage sollte für jede Sprache und jedes Framework gelten, das die Abhängigkeitsinjektion verwendet.
Ich versuche dem SOLID-Prinzip zu folgen und habe deshalb viele Abstraktionen bekommen. Aber jetzt frage ich mich, ob es eine bewährte Methode für die Anzahl der Injektionen gibt, die eine Klasse injizieren sollte.
Zum Beispiel habe ich ein Repository mit 9 Injektionen. Wird dies für einen anderen Entwickler schwer zu lesen sein?
Die Injektionen haben folgende Verantwortlichkeiten:
- IDbContextFactory - Erstellt den Kontext für die Datenbank.
- IMapper - Zuordnung von Entitäten zu Domänenmodellen.
- IClock - Abstracts DateTime.Now hilft bei Unit-Tests.
- IPerformanceFactory - misst die Ausführungszeit für bestimmte Methoden.
- ILog - Log4net zur Protokollierung.
- ICollectionWrapperFactory - Erstellt Sammlungen (die IEnumerable erweitern).
- IQueryFilterFactory - Generiert Abfragen basierend auf Eingaben, die db abfragen.
- IIdentityHelper - Ruft den angemeldeten Benutzer ab.
- IFaultFactory - Erstellen Sie verschiedene FaultExceptions (ich verwende WCF).
Ich bin nicht wirklich enttäuscht darüber, wie ich die Verantwortlichkeiten delegiert habe, aber ich mache mir langsam Sorgen um die Lesbarkeit.
Also meine Fragen:
Gibt es eine Grenze für die Anzahl der Injektionen, die eine Klasse haben sollte? Und wenn ja, wie kann man das vermeiden?
Schränken viele Injektionen die Lesbarkeit ein oder verbessern sie sie tatsächlich?