0

我已经阅读了有关依赖注入的 IOC/DI。它说为我们希望注入的每个类创建接口。它是否违反了接口的定义(实现我们要在类中强制执行行为的地方)。任何帮助将不胜感激。谢谢。

4

2 回答 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 回答