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

Sam*_*tar 7 c# azure azure-storage azure-table-storage

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

[DisplayName("Created By")]
public string CreatedBy { get; set; }
[DisplayName("Modified By")]
public string ModifiedBy { get; set; }
Run Code Online (Sandbox Code Playgroud)

我想避免重复,所以我正在考虑创建一个类来包含这些如下:

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

对于我的数据类,然后我不想让它们从TableServiceEntity继承,我想将它们设置如下:

public class MyClass : TableServiceEntityRowInfo 
{

}
Run Code Online (Sandbox Code Playgroud)

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

Jay*_*Jay 8

是的,这是有效和明智的.

如果有任何特定于Azure的问题,我无法说出来.

关于"IS A"与"HAS A"的评论,我认为这里可以安全地忽略它.真的,它几乎归结为命名风格.你叫你的基类TableServiceEntityRowInfo,因为它是一个TableServiceEntity行的信息.如果您AuditableTableServiceEntity之所以调用它会有什么影响,因为它有用于审计的字段.现在它完全相同,但你可以声称每个继承类"是一个" AuditableTableServiceEntity.

您可能还希望将基类标记为abstract清楚它不应该实例化,只是继承.