我想构建一个具有模型" shop"在里面。每个商店都有营业时间。这些开放时间可能非常复杂。我认为复杂性最好用例子证明:
如您所见,有许多复杂的组合。
结果数据结构应该支持三件事:
我试图将其建模为对象结构。我目前的想法是:
对于每种情况,都有一个实现它的类,例如:
每家商店都有开放时间列表。
我最关心的是可用性:如何打印这样建模的开放时间,以及用户如何输入?
我对其他方法持开放态度。尚未实施任何内容,在考虑上述方法时,我的肚子酸痛......
答案 0 :(得分:2)
(就数据建模标签而言)一个单一实体:
OpeningPeriod(CalendarDay,OpeningHour,ClosingHour)
或
OpeningPeriod(OpeningTimeStamp,ClosingTimeStamp)。
任何商店/组织的完整开放/关闭时间表是一组这样的开放时间。
不要尝试捕捉某种"通用无所不包的预测方式"描述任何可能的开始/结束时间表"完全",包括所有例外和例外。你将失败,因为"例外"的性质无止境。当你开始尝试"优先排序时,你也会很快遇到严重的问题。在重叠的规则之间。
尝试建立尽可能多的"标准"尽可能在UI中基于规则的设施,以及在OpeningPeriod的最低细节处管理计划的工具,用于处理由提供的规则未处理的任何可能的"异常"。