Ho 2 moduli (contenenti più classi). Chiamiamoli Module A
e Module B
. Il modulo B ha una dipendenza dal modulo A: Module B -> Module A
. Ora, ho creato una classe di utilità C
, che A e B dovrebbero usare ma l'utilità stessa dipende dalla funzionalità trovata in A e B, quindi A e B dipendono anche da C. Quindi qualcosa del genere: C <-> B -> A <-> C
.
Sfortunatamente, non mi è permesso estrarre la dipendenza da A e B e metterli da qualche altra parte, quindi devono rimanere intatti (tranne che per il codice che usa l'utilità). Rendere l'utility un Interface
e implementarlo in A e B, inoltre, non funziona perché le implementazioni dipenderanno anche da A e B, causando di nuovo una dipendenza ciclica ...
Si tratta di un problema di progettazione generale di come è stato progettato il mio progetto che è irrisolvibile?
EDIT: aggiunge un po 'più di dettagli.
Le dipendenze sono in forma di chiamate di metodo a classi situate all'interno dei moduli A e B. Un'estrazione sarebbe possibile ma interromperà il progetto iniziale e lo renderà anche strano dato che ha senso mantenerli dove sono.