我有很多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
{
}
这是向字段添加其他信息的有效且明智的方法。我在这里问的原因是因为我打算对很多课程这样做,我想确保我做对了。
答案 0 :(得分:8)
是的,这是有效且明智的。
如果有任何特定于Azure的问题,我无法与之对话。
关于“IS A”与“HAS A”的评论,我认为这里可以安全地忽略。真的,它几乎归结为命名风格。您已将基类命名为TableServiceEntityRowInfo
,因为它是具有行信息的TableServiceEntity
。如果您将其称为AuditableTableServiceEntity
,因为它有用于审核的字段,该怎么办?现在它完全相同,但您可以声明每个继承类“IS A” AuditableTableServiceEntity
。
您可能还希望将基类标记为abstract
,以明确它不应该被实例化,只能继承。