我已阅读有关依赖注入的IOC / DI。它说要创建我们希望注入的每个类的接口。它是否违反了接口的定义(实现我们想要在类中强制执行的行为)。任何帮助将受到高度赞赏。感谢。
答案 0 :(得分:2)
我认为你的主要困惑在于,在DI / IoC场景中,我们没有想要注入的类,我们有一个服务我们想要注射假设我有一个Logger
课程。它不是我要注入的Logger
类本身,它是ILogger
接口描述的一组日志记录服务。如果我没有使用DI或IoC,我会在每个班级中找到一个位置ILogger _logger = new Logger()
,或者ILogger _logger = Logger.Instance
,两者都将我的代码耦合到{{{ 1}}接口。但是使用DI / IoC,我将这一步留给了框架,并且不需要考虑我的业务逻辑类中的特定实现。
答案 1 :(得分:1)
它是否违反了接口的定义(实现我们想要在类中强制执行的行为)?
不,不。
您创建界面的这一事实意味着您正在定义行为。您是否打算使用DI来实现您的实施并非完全相关。