我想在UML类图中描述以下情况:
将报纸发送给客户的一天。这一天可能是……。例如“每个星期五”或“每月的第一天”。
我的想法是用UML类图表示的:
-targetDay:Integer
-targetDayGrid:Enumeration
targetDay将是……。例如“1”(星期一)或“5”(星期五),也可能是该月第一天的“1”或该月第十天的“10”。
targetDayGrid是一个枚举:每周,每月。
因此,枚举在targetDay中设置数字的语义。我对此不满意,您知道其他解决方案来代表我的问题吗?还是您认为我的解决方案可以?
最佳答案
将实际的日期检索和该日期的计算彼此分开确实是一个好主意,但这在每种情况下都无法适用,例如当您要预先计算更多的值时,与逐个客户相比,逐个计算方法可以更有效地进行计算。这也将允许将来添加新方法(每两周一次交付,节假日期间不同的交付模式...)。具有依赖于其他值的语义的值可能很危险。您还希望避免出现错误的数据,可能按建议使用枚举,尤其是一周中的几天(不要忘记,并非每个月都有相同的长度,您需要一些带有检查的Date类,而不只是一个枚举)。但是,如果您正在寻找最简单的解决方案,请尝试两个变量-一年中的一天和一天中的乘数(但请记住,并非每年都有相同的天数...)。