我有一个方法,它接受一些参数并生成一些 XML 以发送到 [archaic] Web 服务。
我需要包含在 XML 中:
日期 (yyyy-mm-dd)
开放时间 (hh:mm)
关门时间 (hh:mm)
现在,当我不得不单独提供日期/时间时,我采用了一个 DateTime 参数并将日期格式化为一个字段,将时间格式化为另一个字段。
在这种情况下,我有一个日期和一天中的 2 次。
我最初的方法是 3 个输入字段 - 一个日期,2 个时间跨度。这感觉不对,因为时间跨度可能超过一天。
另一个想法是取 2 个日期 - 将一个日期用于日期字段,然后将两个日期的时间用于其他字段。这感觉不对,因为提供的日期实际上可能是不同的日子。
我能想到的最后一个选项是有一个OpeningDateTime
参数和一个OpenDuration
时间跨度,但是,由于开/关时间是根据星期几(而不是日期)存储的,开发人员需要自己计算时间跨度——这看起来很愚蠢违反 DRY 原则。更不用说时间跨度可以> 1天
简而言之,我有 3 个可行的解决方案,但没有一个感觉是正确的——前 2 个解决方案只会在运行时解决问题。如果方法定义很难传入无效数据(如果不是不可能的话),我会更喜欢它 - 然后在设计时会看到
也许我过度分析了,但必须有一种更简洁的方法来做到这一点
有没有人有首选的方法,如果有,为什么?