例如:
说我有课A
,B
,C
。我有两个接口,我们称它们为IAnimal
和IDog
。IDog
继承自IAnimal
。A
和B
是IDog
s,虽然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
是可怕的同义反复的名字!