2017-06-03 5 views
0

私は単一の具体的なクラスを持っています。制御原理の反転の失敗 - 単一コンクリートクラス

インターフェイスを作成する必要はありません。これは、1つの実装しかないためです。

これは、より高いレベルのクラスにValidatorのインスタンスを注入する際に、逆転原理の依存性に失敗しますか?

私はこのクラスのためのインターフェイスを使用していた場合、それは名前の問題

+0

*このクラスのインターフェイスを使用すると、名前付けの問題が発生します。* - どういう意味ですか? – niksofteng

答えて

2

彼らは実装を交換するために役立つので、私たちはユニットテスト中に、そしてもちろんの抽象化のあざける、インタフェースを使用が発生します。

Validatorのインスタンスを上位レベルのクラスに挿入すると、これは逆転原理の依存性に失敗しますか?

DIPによると、ValidatorIValidator、それはちょうど約IValidator契約、ないValidator定義自体を知っておくべき必要なクラスを実装する必要があります。ただし、IOCコンテナ(例:Unity)では、インターフェイスではなくクラスの種類を登録できます。

これは単なる原則であり、それをそのまま従わないという有効な例外が存在する可能性があります。あなたのような場合は、DIP、IOC、DIのコアの意図にもっと焦点を当てます。それは疎結合コードを持つことです。私はインターフェイスを作成することを躊躇します、私は1つの実装になるだろうと確信している場合。

私はIOCコンテナ以外のものがValidatorをインスタンス化することを確認します。

関連する問題