【发布时间】:2013-02-17 15:28:11
【问题描述】:
您将如何构建一个数据结构 - 表示为下面的 Schedule 类 - 这将为您提供足够的信息,以便为您的 ExtensionMethod 提供简单而足够的信息,以便它可以设置 testResult_# 变量.
请注意:我不是在问如何实现 GetScheduleById(string) 方法,而是要求以一种可以通过提供所有此方法所需的信息。
var datetimeUnderTest = DateTime.Now;
Schedule workingDaysSchedule = ScheduleRepository.GetScheduleById("dubaiWorkingDays");
Schedule workingHoursSchedule = ScheduleRepository.GetScheduleById("usaWorkingHours");
Schedule winterSchedule = ScheduleRepository.GetScheduleById("brasilWinter");
Schedule nightsInWeekendSchedule = ScheduleRepository.GetScheduleById("NightsInWeekends");
Schedule nightsInWeekDaysSchedule = ScheduleRepository.GetScheduleById("NightsInWeekDays");
// IsInSchedule is an Extension method on DateTime
bool testResult_0 = datetimeUnderTest.IsInSchedule(workingDaysSchedule );
bool testResult_1= datetimeUnderTest.IsInSchedule(workingHoursSchedule );
bool testResult_2 = datetimeUnderTest.IsInSchedule(winterSchedule);
bool testResult_3 = datetimeUnderTest.IsInSchedule(nightsInWeekendSchedule );
bool testResult_4 = datetimeUnderTest.IsInSchedule(nightsInWeekDaysSchedule );
谢谢!
【问题讨论】:
-
这听起来像是 规范模式 - en.wikipedia.org/wiki/Specification_pattern 可能能够提供帮助的东西。定义可用性规范,然后将接收者传递给规范以确定它们是否满足规范,即它们是否可用。
-
我认为这主要是为了找到一种方便的方法来定义适当的 DataStructure,该数据结构可以携带足够的信息来帮助回答这些问题。
-
基本上是的。您能否详细说明您的问题,因为我不能 100% 确定您要问的是什么。您能从问题所在以及您目前遇到的情况开始吗?
-
我重新问了这个问题。我希望这次更清楚。
-
HashMap(或字典)是否适用于 ScheduleRepository?其中键是Id,值是Schedule。 GetScheduleById 将映射到 TryGetValue,IsInSchedule 将映射到 containsKey。
标签: c# datetime data-structures calendar scheduling