Nel mio codice, ho le seguenti oggetti:Qual è il modo migliore per gestire le dipendenze circolari tra gli oggetti?
- ErrorManager - controlla il modo in errori vengono registrati nell'applicazione
- configmanager - controlla come si ottiene le informazioni di configurazione
On Nel progetto su cui sto lavorando, ErrorManager deve estrarre le informazioni di configurazione utilizzando l'istanza di ConfigManager mentre ConfigManager utilizza l'ErrorManager in caso di errore.
Al momento, sto facendo quanto segue in codice:
ErrorManager _errorManager = new CustomErrorManager();
ConfigManager _configManager = new CustomConfigManager(_errorManager);
_errorManager.SetConfigurationManager(_configManager);
C'è un modo per me per ripulire questo riferimento circolare delle dipendenze?
Generalmente un'abbondanza di classi "Manager" indica un abuso del modello Singleton e non un design orientato agli oggetti. – Tmdean
Sto utilizzando un modello Singleton per specifiche responsabilità nell'applicazione (ad esempio gestione degli errori e gestione della configurazione). L'istanza singola non è implementata tramite un pattern Factory poiché sto cercando di aggiungere un contenitore IOC nell'applicazione nel prossimo futuro per gestire le dipendenze per me. In questo momento, mi sto concentrando solo sul funzionamento delle dipendenze in modo che il contenitore IoC sia un'aggiunta facile. – JamesEggers