例如:
说我有课A,B,C。我有两个接口,我们称它们为IAnimal和IDog。IDog继承自IAnimal。A和B是IDogs,虽然C不是,但它是一个IAnimal。
重要的部分是不IDog提供任何附加功能。它仅用于允许A和B,但不C以作为参数传递给某些方法进行传递。
这是不好的做法吗?
MyProject.Data.IAnimal和MyProject.Data.Animal更好比MyProject.Data.Interfaces.Animal和  MyProject.Data.Implementations.Animal
                Interface或Implementation,无论是在重复前缀还是在名称空间中,无论哪种方式都是重言式,都违反了DRY。Dog这就是您应该关心的。PitBull extends Dog也不需要实现冗余,这个词extends告诉我所有我需要知道的内容,请阅读我在原始评论中发布的链接。
                
IAnimal并且IDog是可怕的同义反复的名字!