Это правильный способ упростить мои унаследованные классы? - PullRequest
7 голосов
/ 20 ноября 2011

У меня есть много классов 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 Ответ

8 голосов
/ 20 ноября 2011

Да, это правильно и разумно.

Если есть какие-либо специфичные для Azure проблемы, я не могу об этом говорить.

Что касается комментария "IS A" против«Есть», - думаю, здесь можно смело игнорировать.На самом деле, это почти сводится к стилю именования.Вы назвали свой базовый класс TableServiceEntityRowInfo, потому что TableServiceEntity содержит информацию о строке *1008*.Что делать, если вы назвали это вместо AuditableTableServiceEntity, потому что у него есть поля для аудита.Теперь это точно так же, но вы можете утверждать, что каждый из наследующих классов "IS A" AuditableTableServiceEntity.

Вы также можете пометить свой базовый класс как abstractчтобы было ясно, что его не следует создавать, только наследовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...