使用"A"类接口前缀抽象类的前缀是"I"?

Dav*_*vy8 4 .net naming-conventions

在我看来,能够一眼就知道一个类是抽象的并且不打算直接实例化就像它能够轻松识别接口一样有用.

我的问题是,为什么没有"AFourLeggedAnimal:IAnimal"流行?是否仅仅因为可能的混淆(我在编写时就注意到了这一点)例如将其混淆为"四足动物"而不是"抽象类FourLeggedAnimal"?还是更多的东西?

从学校的Java到C#工作,我发现"I"前缀命名约定在浏览类列表时非常有用,在我看来,能够区分混凝土和非混凝土是很方便的.课程一目了然,无需查看代码.

edu*_*911 14

使用后缀"Base"作为Joel提及.一旦你的项目有很多,很容易区分:

public abstract AnimalBase
{
  public AnimalType AnimalType { get; set; }
}

public abstract HorseBase : AnimalBase
{
  public HoovesManufacturer HoovesManufacturer { get; set; }
}

public class Pony : HorseBase
{
  public Pony()
  {
  }
}
Run Code Online (Sandbox Code Playgroud)


Joe*_*orn 13

我更喜欢以"Base"为后缀.

  • 一个抽象类不能是一些其他类的基类而不能吗?基地不代表根. (5认同)