控制原理失败倒置 - 单一具体类

时间:2017-06-03 11:28:23

标签: inversion-of-control solid-principles

我有一个具体的类:验证器,只做一件事。

我没有必要创建一个接口,因为只有一个实现。

将Validator的实例注入更高级别的类时,这是否会失败依赖于反转原理?

如果我要为此类使用接口,则会导致命名问题

1 个答案:

答案 0 :(得分:2)

我们使用接口,因为它们有助于交换实现,在单元测试期间进行模拟,当然还有抽象。

  

这在注入时是否会失败反转原理的依赖性   Validator的实例进入更高级别的类?

根据DIPValidator应该实现IValidator,而需要它的类应该只知道IValidator合同,而不是Validator定义本身。但是,IOC容器(例如Unity)允许您注册类类型而不是接口。

这只是一个原则,可能有一个有效的例外,不按原样遵循它。在像你这样的情况下,我会更多地关注DIP,IOC和DI的核心意图;那就是松散耦合的代码。如果我确定只有一个实现,我会毫不犹豫地创建界面。

我只是确保除了我的IOC容器之外什么都不会实例化Validator