关于不同时间表的模式/代码

本文关键字:代码 模式 于不同 时间表 | 更新日期: 2023-09-27 17:58:18

我们接受潜在供应商的潜在客户。我们只允许某些供应商在特定的日子/时间向我们发布线索。目前,我们有3个时间表,但未来可能会增加1个或n个:

  1. 星期日上午8点-星期五下午3点--其间的所有时间
  2. 周一至周五上午8点至下午5点
  3. 每天24小时

此外,我们希望能够一次性发布特定的时间——所以,我们会告诉一些主要供应商,"我知道你通常会发布M-F上午8点到下午5点,但周一是假期,所以不要发布。"

问题是,一些潜在客户提供商没有设置来处理时间表(或者,如果他们想向我们出售更多潜在客户,就忽略它)。因此,我现在必须在接收潜在客户时将此检查添加到我们的系统中,并首先检查该潜在客户提供商(他们在发送的XML中标识自己)是否被允许在这个特定时间发布潜在客户。

老实说,我不知道从哪里开始。以前有人这样做过吗?你是如何处理的,你的方法有什么优点/缺点?

关于不同时间表的模式/代码

这看起来有点复杂的基于规则的逻辑,所以在我看来,最好的方法是创建一组表示所涉及实体的对象。为了澄清,我的意思是将规则建模到对象,应用最合适的设计模式。

例如,我现在突然想到,如果你说客户有一套何时发布的"规则",我会通过在客户对象上有一个方法来建模,比如CanPost(DateTime-postTime)。该方法将根据规则集合检查postTime,规则集合可以根据您的需要而复杂。起初,它可以简单地是这些第一个"后规则"和您稍后在规则中提到的"例外"的两个集合;但这确实可以建模到无穷大。查看Martin Fowlers Analysis Patterns,以获得对许多复杂领域模型的良好参考,特别是如果可以的话,有Fowler的Accounting Patterns电子书,请查看PostingRule部分