我正在开发一个可用性日历。可预订活动可能有 1 个或多个可用于预订的资源,并且这些活动可以重复发生并具有一些基本功能,例如编辑重复活动的一个实例等(例如 Google 日历)。日历还应该能够存储预订。
示例:每周一 10:00,直到 2014 年底 Unit A 有 2 个可用资源,但周一 24/6 没有。上周一,UserX 和 UserY 被预订了该活动,但 UserX 没有出现。
我已经查看了一些用于重复事件的设计模式,但找不到一种很好且优雅的方式来处理重复事件和将细节附加到单个事件。
我已经做了一些建模,我将事件和重复存储在事件中,然后我必须为每个单独的事件创建一个 EventDetails 实例。
class Event {
Date start
Date end
boolean isRecurring
EventRecurType recurType // DAILY, WEEKLY ...
Integer recurInterval = 1
Date recurEnd
Integer recurCount
List<EventDetails> eventDetails // Id, start, end, BookingDetails et.c.
}
我相信有更好的方法可以做到这一点,你能帮我吗?