Ho una classe helper generica (1) che può essere utilizzata anche in altri progetti. Immagina qualcosa come la gestione di base di file e cartelle, qualcosa di utile e ASCIUTTO che ti viene sempre utile.
Ho un'altra classe (2) specifica del progetto, ma usa la classe generica (1) per realizzare le cose.
La classe helper generica (1) viene utilizzata creando un nuovo oggetto in posti specifici dove è necessario nel progetto.
GenericHelperClass ghc = new GenericHelperClass();
Lo stesso vale per la classe specifica del progetto (2), viene utilizzata creando un nuovo oggetto in posti specifici dove è necessario nel progetto.
ProjectSpecificClass psc = new ProjectSpecificClass();
Ma come ho detto la classe specifica del progetto (2) usa la classe helper generica (1) per fare cose.
Quindi, ho pensato, che la classe specifica del progetto (2) dovrebbe avere la propria classe helper generica private (1) per fare il suo lavoro.
Ma aspetta, ci sarà già un'istanza di quella classe helper generica (1) nel progetto, quindi perché crearne un'altra? Passiamo solo quell'istanza di (1) sul costruttore di (2).
Quindi (2) ora viene creato come:
GenericHelperClass ghc = new GenericHelperClass();
// code and code and code
// .
// .
ProjectSpecificClass psc = new ProjectSpecificClass(ghc);
con questo ho solo un oggetto di GenericHelpClass, e ho evitato di usare static.
La domanda è: Mi sbaglio qui o sto solo creando spaghetti-dipendenze o qualcosa del genere? Qualche suggerimento?
(la selezione dei nomi GenericHelperClass / ProjectSpecificClass è solo per dimostrazione)