我已经阅读了有关依赖注入的 IOC/DI。它说为我们希望注入的每个类创建接口。它是否违反了接口的定义(实现我们要在类中强制执行行为的地方)。任何帮助将不胜感激。谢谢。
问问题
91 次
2 回答
2
我认为您的主要困惑在于,在 DI/IoC 场景中,我们没有要注入的类,而是要注入的服务。假设我有一Logger
堂课。Logger
我要注入的不是类本身,而是ILogger
接口描述的一组日志服务。如果我不使用 DI 或 IoC,我将在每个课程中都有一个位置ILogger _logger = new Logger()
,或者也许ILogger _logger = Logger.Instance
,这两者都将我的代码耦合到ILogger
接口的特定实例。但是对于 DI/IoC,我把这一步留给了框架,不用在意我的业务逻辑类中的具体实现。
于 2012-04-23T05:55:31.937 回答
1
它不违反接口的定义(实现我们想要在类中强制行为的地方)吗?
不,它没有。
您正在创建界面这一事实意味着您正在定义行为。您是否要使用 DI 来实现您的实现并不那么重要。
于 2012-04-23T05:54:18.627 回答