2017-06-03 31 views
0

我有一個具體的類:驗證器,可以完成一件事情。控制原理失敗 - 單個混凝土類

我沒有必要創建一個接口,因爲這隻有一個實現。

將Validator實例注入更高級別的類時,這是否會失敗反轉原理的依賴關係?

如果我使用的接口該類它會導致命名問題

+0

*如果我要爲這個類使用接口,它會導致一個命名問題* - 你是什麼意思? – niksofteng

回答

2

我們使用的接口,因爲它們有助於用於交換的實現,在單元測試,當然抽象的嘲諷。

當將Validator實例注入更高級別的類時,這是否失敗了倒置原理的依賴關係?

DIPValidator應該實現IValidator和類需要它應該只是知道IValidator契約,而不是Validator定義本身。但是,IOC容器(例如Unity)允許您註冊類類型而不是接口。

這只是一個原則,可以有一個有效的例外,不按照原樣。在像你這樣的情況下,我會更多地關注DIP,IOC和DI的核心意圖;那就是有鬆散耦合的代碼。如果我確信只有一個實現,我會毫不猶豫地創建接口。

我只想確保沒有任何東西除了我的IOC容器實例化Validator