stasera pensavo a cosa racconta del design e dell'architettura delle classi con molti oggetti iniettati. Sto prendendo in considerazione specificamente setter e constructor injection.
I sostenitori dell'iniezione setter usano sempre un argomento di complessità dell'iniezione del costruttore in opposizione alla semplicità del setter, specialmente nei casi in cui il numero di parametri nel costruttore cresce, ma questo è un argomento diverso.
Penso che un gran numero di parti iniettate suggeriscano una violazione della singola responsabilità dell'oggetto. Ci potrebbero essere fiocchi di neve speciali, ma in generale una buona metrica, penso.
Ora come combatterlo specialmente nei casi in cui la profondità verticale dei costruttori è maggiore di diciamo 3?
Sto pensando ad alcune linee guida per combattere questi casi.
Spiegazione: profondità verticale
Diciamo che abbiamo un'architettura complessa, in cui alcune classi UniversalHelper / IUniversalHelper sono create nella radice o vicino alla radice e l'istanza sta permeando nel grafico sempre più in profondità. Non considero i logger come tali oggetti, hanno uno scopo specifico che deve permeare attraverso l'intera architettura, ma qualcosa come l'accesso universale ai dati. Si ritiene che debba essere usato qualcosa come gestori di dati specifici per casi specifici di accesso ai dati e quindi oggetto UniversalHelper non sarebbe più permeante attraverso l'architettura, la sua profondità verticale sarebbe limitata, invece la profondità orizzontale crescerebbe in un punto specifico, dove UniversalHelper sarebbe utilizzato per creare specifici gestori di dati, oggetti con responsabilità raffinata, più limitata o limitata verso un singolo obiettivo di responsabilità.
Ovviamente, dove è permesso a un oggetto universale di permeare l'intera architettura, prima o poi ci saranno due, tre, cinque :). È logico perché ritiene che gli sviluppatori stagionati sul progetto dato siano uno stile di vita utile, corretto e testato e che i nuovi sviluppatori che si uniscono a progetti specifici siano un segno, è sempre stato così, se lo fai nello stesso modo , ha una maggiore probabilità di passare la revisione del codice da colleghi esperti sul progetto ...