例えば:
私はクラスを持っていると言いますA、B、C。私は2つのインタフェースを持って、それらを呼び出すことができますIAnimalし、IDog。IDogから継承しIAnimalます。Aand BはIDogsで、while Cはそうではありませんが、IAnimalです。
重要な部分は、IDog追加機能を提供しないことです。特定のメソッドへの引数として渡されることを許可するためだけに使用されますがA、BではありませんC。
これは悪い習慣ですか?
MyProject.Data.IAnimalとは、MyProject.Data.Animalより優れているMyProject.Data.Interfaces.Animalと MyProject.Data.Implementations.Animal
Interfaceor Implementationであるかどうかさえ気にする必要はないということです。繰り返しの接頭辞であれ名前空間であれ、いずれにせよトートロジーであり、DRYに違反します。Dog気にする必要があるのはこれだけです。PitBull extends Dog実装の冗長性も必要ありません。単語extendsは私が知る必要があることをすべて教えてくれます。元のコメントに投稿したリンクを読んでください。
IAnimalそして、IDogしているひどいトートロジー名!