这是简化继承类的有效方法吗?

时间:2011-11-20 04:32:20

标签: c# azure azure-storage azure-table-storage

我有很多Azure类,其中包含日期字段并通过跟踪进行修改。字段如:

[DisplayName("Created By")]
public string CreatedBy { get; set; }
[DisplayName("Modified By")]
public string ModifiedBy { get; set; }

我想避免重复,所以我正在考虑创建一个包含这些内容的类:

public class TableServiceEntityRowInfo : TableServiceEntity  
{
    [DisplayName("Created By")]
    public string CreatedBy { get; set; }
    [DisplayName("Modified By")]
    public string ModifiedBy { get; set; }
}

对于我的数据类,我不想让它们从TableServiceEntity继承,而是按照以下方式设置它们:

public class MyClass : TableServiceEntityRowInfo 
{

}

这是向字段添加其他信息的有效且明智的方法。我在这里问的原因是因为我打算对很多课程这样做,我想确保我做对了。

1 个答案:

答案 0 :(得分:8)

是的,这是有效且明智的。

如果有任何特定于Azure的问题,我无法与之对话。

关于“IS A”与“HAS A”的评论,我认为这里可以安全地忽略。真的,它几乎归结为命名风格。您已将基类命名为TableServiceEntityRowInfo,因为它是具有行信息的TableServiceEntity。如果您将其称为AuditableTableServiceEntity,因为它有用于审核的字段,该怎么办?现在它完全相同,但您可以声明每个继承类“IS A” AuditableTableServiceEntity

您可能还希望将基类标记为abstract,以明确它不应该被实例化,只能继承。