命名基类的推荐方法是什么?它是否在类型名称前加上“ Base ”前缀或“摘要”或者我们只是用“Base”后缀它?

请考虑以下事项:

输入: ViewModel ,例如 MainViewModel ReportViewModel

基类: BaseViewModel ViewModelBase AbstractViewModel

还要考虑:

输入:产品,例如 VirtualProduct ExpiringProduct

基类: BaseProduct ProductBase AbstractProduct

您认为哪个更标准?

class Entity : EntityBase
{
}

class Entity : BaseEntity
{
}
有帮助吗?

解决方案

框架中有一些带有Base后缀的示例,例如 System.Configuration.Provider.ProviderBase System.Web.SessionState.SessionStateStoreProviderBase

但是,框架中的所有抽象基类都不遵循此约定(例如 System.Data.Common.DbParameter System.Data.Common.DbCommand )。

我个人会避免使用后缀,除非我想强调它是一个抽象类的事实,并认为该类的用户可能希望该名称表示具体的实现。

其他提示

以上都不是。考虑基类提供的目的;把它命名为。例如,汽车和自行车的基类可以是车辆。

如果你创建基类只是为了拥有一个类的基类,并且没有其他目的或理由,你可能做错了。

如果您在谈论虚拟基类,Microsoft的标准是ClassnameBase(如CollectionBase。)

我认为这是一个选择问题。我想说如果你要创建很多基类,那么最好总是使用BaseClassname,因为这样你只需键入Base并获得其余的帮助就可以找到你可以开始使用的基类。智能感知。如果您有20个Base类并且添加了Base作为后缀并且忘记了基类的名称,该怎么办?您想首先从VS创建一个类图并找出可用的基类吗? 当ClassBase只有一两个类时,可以将它们命名为ClassBase。

GetItems和ItemsGet函数之间的决定同样如此。为了便于阅读,我会说 - 至于GetItems。遵循惯例:)

我们使用BaseEntity,但我认为这是您自己的偏好。我经常看到另一个。

在您的环境中保持一致,无论是您的项目,命名空间还是可能的团队。不同的约定比糟糕的惯例恕我直言。

就个人而言,我建议不要添加单词base。你永远不知道什么时候你必须改变代码,它将不再是基础对象。话虽这么说,我们过去做过这个,我们在前面加上了Base这个词。它似乎流动得更好。

BaseEntity看起来很像驼峰案例 - strName,bseEntity。我会去EntityBase,因为它首先定义了主题,这将帮助你更快地识别它的功能。

在命名内容时,请始终考虑按字母顺序排列。我真的不喜欢看SQL服务器,每个存储过程都命名为usp [something]。同样,不要过度使用Get和Set作为函数的前导名称。而不是GetItems或PlaceOrder,考虑将它们命名为ItemsGet或OrderPlace。

因此,通常,ClassnameBase / EntityBase将是更好的选择。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top