我有一个名为“Set”的实体,其中包含卡片。有时我想查看整个卡片及其内容(卡片视图),而有时我只想知道集合中有多少张卡片(表格视图)。为了保持干燥,我决定尝试使用多个构造函数重新使用我的 SetDto 类,如下所示:
public class SetDto
{
public SetDto()
{
Cards = new List<CardDto>();
}
// Called via SetDto(set, "thin")
public SetDto (Set set, string isThin)
{
var setDto = new SetDto()
{
SetId = set.SetId,
Title = set.Title,
Details = set.Details,
Stage = set.Stage,
CardCount = set.Cards.Count
};
return setDto;
}
// Called via SetDto(set)
public SetDto(Set set)
{
SetId = set.SetId;
UserId = set.UserId;
Title = set.Title;
Details = set.Details;
FolderId = set.FolderId;
Stage = set.Stage;
IsArchived = set.IsArchived;
Cards = new List<CardDto>();
foreach (Card card in set.Cards)
{
Cards.Add(new CardDto(card));
}
}
/// property definitions
我最初有两个不同的 DTO 用于集合 - ThinSetDto 和 FullSetDto - 但这似乎很混乱且更难测试。上述解决方案看起来不错,还是我违反了已知的最佳实践?感谢您的时间!