C# 关于不同计划的模式/代码
我们接受潜在供应商的潜在客户。我们只允许某些供应商在特定日期/时间向我们发布潜在客户。目前,我们有3个计划,但将来可能会增加1个或n个:C# 关于不同计划的模式/代码,c#,sql-server,schema,scheduling,C#,Sql Server,Schema,Scheduling,我们接受潜在供应商的潜在客户。我们只允许某些供应商在特定日期/时间向我们发布潜在客户。目前,我们有3个计划,但将来可能会增加1个或n个: 星期日上午8点到星期五下午3点——所有时间间隔 周一至周五上午8点至下午5点 每天24小时 此外,我们希望能够在特定时间一次性发布——因此,我们会告诉一些潜在客户提供商,“我知道您通常发布上午8点到下午5点的M-F,但周一是假日,所以不要发布。” 问题是,一些潜在客户提供商没有准备好处理时间表(或者如果他们想向我们销售更多潜在客户,就忽略它)。因此,我现在必须
我真的不知道从哪里开始。以前有人这样做过吗?您是如何处理它的,以及您的方法的优点/缺点是什么?这看起来有点复杂,基于规则的逻辑,因此我认为最好的方法是创建一组表示所涉及实体的对象。为了澄清,我的意思是将规则建模到对象,应用最合适的设计模式
例如,我现在想不起来,如果你说一个客户在什么时候发布有一组“规则”,我会通过在customer对象上有一个方法来建模,比如CanPost(DateTime postTime)。该方法将根据规则集合检查postTime,规则集合可以是您想要的复杂程度。首先,它可以是这些第一个“post规则”和您稍后在规则中提到的“例外”的两个集合;但这实际上可以无限模拟。查看Martin Fowlers Analysis Patterns,了解许多复杂领域模型的重要参考资料,尤其是如果可以查看Fowler的文章,请查看PostingRule部分。这看起来有点复杂,基于规则的逻辑,因此我认为最好的方法是创建一组表示所涉及实体的对象。为了澄清,我的意思是将规则建模到对象,应用最合适的设计模式
例如,我现在想不起来,如果你说一个客户在什么时候发布有一组“规则”,我会通过在customer对象上有一个方法来建模,比如CanPost(DateTime postTime)。该方法将根据规则集合检查postTime,规则集合可以是您想要的复杂程度。首先,它可以是这些第一个“post规则”和您稍后在规则中提到的“例外”的两个集合;但这实际上可以无限模拟。查看Martin Fowlers分析模式,了解许多复杂领域模型的重要参考资料,特别是如果您可以查看Fowler的文章,请查看PostingRule部分另外,查看规范模式,它在尝试实现复杂规则时可能很有用。同样,查看规范模式,它在尝试实现复杂规则时非常有用