我处于数据传输对象的情况,我开始认为我过度架构或使事情复杂化......
我不知道我是对还是错。
仅当在客户端 UI 中选择 WeekType AB 时,才需要 EditSchoolyearDTO 中的所有属性。
当只选择 WeekType A 时,A 属性就足够了。
在 AB 案例中,我现在将创建一个 SchoolWeekADTO 和 SchoolWeekBDTO。
好吧,当我将 DTO 结构视为客户端和服务器之间的 json 接口时,我的 DTO 结构不会表达何时需要 A 或 AB 数据。这对我来说感觉很糟糕。
最重要的是,我的服务器 api 具有固定类型,因此我不能一次发送带有 A-DTO 的帖子,而另一次发送带有 AB-DTO 的帖子。
你会怎么做?
public class EditSchoolyearDTO
{
public string Name { get; set; }
public DateTime EndDate { get; set; }
public WeekType StartWeek { get; set; }
public enum WeekType : int
{
A = 0,
AB = 1,
}
public int UserId { get; set; }
public SchoolWeekADTO SchoolWeekA { get; set; }
public SchoolWeekBDTO SchoolWeekB { get; set; }
// When WeektType is A then only SchoolWeekA is or its A-properties are needed
// SchoolyWeekADTO
//public int MaxPeriodPerWeekA { get; set; }
//public IEnumerable<int> VisibleWeekDayIndexA;
//public DayOfWeek FirstDayOfWeekA { get; set; }
// SchoolWeekBDTO
//public int WeeklyRotation { get; set; }
//public DayOfWeek FirstDayOfWeekB { get; set; }
//public IEnumerable<int> VisibleWeekDayIndexB;
//public int MaxPeriodPerWeekB { get; set; }
}