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