Sto scrivendo la mia seconda applicazione di vita reale, che utilizza DI. Nel complesso, penso che abbia permesso un design migliore. Ma ci sono alcuni odori di codice, che non so come risolvere.DI: Quanto iniettare?
Preferisco utilizzare l'iniezione del costruttore e ho spesso osservato che ho bisogno di circa 5 o più oggetti da iniettare nel costruttore. Sembra essere troppi, forse è un problema di progettazione, non si ottiene il SRP giusto. Ma penso che anche il mio uso di DI sia da biasimare.
Sto cercando "best practice" o "regola del pollice", in generale mi sembra di iniettare tutto, che non è nel framework .Net, è che esagerare?
Per iniziare, ecco due esempi di oggetti che iniettare, ma non sono sicuro.
Gli oggetti che sono veri singleton come la configurazione dell'applicazione o quelle piccole classi di utilità, vengono iniettati? Sembra che vengano iniettati molto spesso, l'unico motivo per iniettarli sembra consentire di modificare il valore per il test, ma Ayende sembra aver risolto il problema in un altro modo: http://ayende.com/Blog/archive/2008/07/07/Dealing-with-time-in-tests.aspx.
Oggetti comuni come la registrazione, utilizzati in quasi tutti gli oggetti, dovrebbero essere iniettati?
Se si accede alla configurazione dell'applicazione come un globale (o statico), allora la classe dipende tutto di quell'oggetto e sarebbe difficile da usare altrove. Meglio iniettare la parte specifica della configurazione a cui interessa il tuo oggetto. –