假设我有一个类,它有以下三个属性。
public class Travel
{
public int MinAirportArrival { get; set; }
public int MinFlightTime { get; set; }
public int TotalTravelTime { get; set; }
}
TotalTravelTime必须至少等于MinAirportArrival和MinFlightTime之和,但在有中转或类似情况下也可能更长。
我认为可以在TotalTravelTime的setter中加入逻辑。
我的问题是关于更改MinFlightTime和MinAirportArrival。是否正确期望先增加TotalTravelTime,如果没有,则在其他属性使得总和大于TotalTravelTime时抛出异常?
是否还有其他合理的控制方式?
我应该让负责保存状态的对象检查类上的有效属性吗?我可能还有其他逻辑要放进去。
编辑
如果存在额外时间,我并没有在任何地方存储它,因此这不仅仅是添加一些属性的问题。请注意,这个类只是一个编造的例子,用来说明我所面临的问题,但我认为它很好地匹配了这个问题。
(MinAirportArrival, MinFlightTime, TotalTravelTime)
,而是存储(MinAirportArrival, MinFlightTime, AdditionalTravelTime)
,它表示完全相同的数据,只是与已知的TotalTravelTime
不同,而不是TotalTravelTime
本身。 - dtb