2017-06-03 28 views
0

我有一个具体的类:验证器,可以完成一件事情。控制原理失败 - 单个混凝土类

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

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

如果我使用的接口该类它会导致命名问题

+0

*如果我要为这个类使用接口,它会导致一个命名问题* - 你是什么意思? – niksofteng

回答

2

我们使用的接口,因为它们有助于用于交换的实现,在单元测试,当然抽象的嘲讽。

当将Validator实例注入更高级别的类时,这是否失败了倒置原理的依赖关系?

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

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

我只想确保没有任何东西除了我的IOC容器实例化Validator