【发布时间】:2010-10-24 07:03:49
【问题描述】:
在我的代码中,我有以下对象:
- ErrorManager - 控制错误的方式 已登录应用程序
- ConfigManager - 控制如何 获取配置信息
在我正在处理的项目中,ErrorManager 需要使用 ConfigManager 实例提取配置信息,而 ConfigManager 使用 ErrorManager 以防发生错误。
目前,我正在代码中执行以下操作:
ErrorManager _errorManager = new CustomErrorManager();
ConfigManager _configManager = new CustomConfigManager(_errorManager);
_errorManager.SetConfigurationManager(_configManager);
有没有办法让我清理这个依赖的循环引用?
【问题讨论】:
-
通常大量的“Manager”类表明滥用单例模式而不是正确的面向对象设计。
-
我将单例模式用于应用程序中的特定职责(即错误管理和配置管理)。单个实例不是通过工厂模式实现的,因为我正在考虑在不久的将来可能会在应用程序中添加一个 IOC 容器来为我处理依赖关系。现在,我只专注于解决依赖关系,以便轻松添加 IoC 容器。
标签: dependency-injection dependencies