En mi código, tienen los siguientes objetos:¿Cuál es la mejor forma de manejar dependencias circulares entre objetos?
- ErrorManager - controla los errores han iniciado sesión en la aplicación
- configmanager - controla cómo se obtiene la información de configuración
En En el proyecto en el que estoy trabajando, el ErrorManager necesita extraer información de configuración utilizando la instancia de ConfigManager, mientras que ConfigManager usa el ErrorManager en caso de que ocurra un error.
Por el momento, estoy haciendo lo siguiente en el código:
ErrorManager _errorManager = new CustomErrorManager();
ConfigManager _configManager = new CustomConfigManager(_errorManager);
_errorManager.SetConfigurationManager(_configManager);
¿Hay una manera para mí para limpiar esta referencia circular de dependencias?
Por lo general, la abundancia de clases "Manager" indica un abuso del patrón Singleton y no un diseño orientado a objetos. – Tmdean
Estoy usando un patrón de Singleton para responsabilidades específicas en la aplicación (es decir, gestión de errores y gestión de la configuración). La instancia única no se implementa a través de un patrón de fábrica, ya que estoy viendo posiblemente agregar un contenedor IOC a la aplicación en el futuro cercano para manejar las dependencias por mí. En este momento, me estoy enfocando en trabajar en las dependencias para que el contenedor IoC sea una adición fácil. – JamesEggers