C# объединить класс/модели или создать несколько классов с наследствомC#

Место общения программистов C#
Anonymous
C# объединить класс/модели или создать несколько классов с наследством

Сообщение Anonymous »

Это довольно простой вопрос, но это меня беспокоит. Должен ли я объединить аналогичные свойства модели в одну модель класса или лучше разделить их и добавить наследство, где это имеет смысл? Я склонен возвращать только данные, необходимые для каждого запроса, но я задаюсь вопросом, когда это меньший объем данных. Лучше объяснить с помощью примера. Многие из вызовов возвращают ienumerables < /p>

public class GroupBaseModel {
public int GroupId { get; set; }
public int GroupName { get; set; }
}
public class RoleBaseModel
{
public int RoleId { get; set; }
public int RoleName { get; set; }
}
public class GroupMemberModel : GroupBaseModel
{
public bool IsMember { get; set; }
}
public class GroupRoleBaseModel {
public int GroupId { get; set; }
public int GroupName { get; set; }
public int RoleId { get; set; }
public int RoleName { get; set; }
}
< /code>

У меня есть звонки, которые возвращают ienumerables каждого из этих классов на нескольких разных страницах. Некоторые вызовы просто возвращают Grouplemodel, в то время как другой вернет Grouprolebasemodel и т. Д. (Каждый из них тянет минимальные необходимые данные для каждого запроса в настоящее время) < /p>

Итак, мой первый вопрос, возможно ли объединить два существующих класса? Например, выше, Grouprolebasemodel - это лишь свойства GroupBaseModel + Grouprolemodel, могу ли я объединить их, не реализуя все свойства снова? < /p>

Второй вопрос: так как мы говорим об очень маленьких классах, я должен просто так нравится ниже и использовать один класс? Несмотря на то, что некоторые запросы возвращают ненужные данные? < /P>

public class GroupBaseModel {
public int GroupId { get; set; }
public int GroupName { get; set; }
public int RoleId { get; set; }
public int RoleName { get; set; }
public bool IsMember { get; set; }
}
< /code>

Спасибо за ваши мысли! < /p>

Подробнее здесь: https://stackoverflow.com/questions/341 ... nheritance

Вернуться в «C#»