gpt4 book ai didi

design-patterns - 如何解释具有复杂限制的操作失败

转载 作者:行者123 更新时间:2023-12-04 06:58:17 27 4
gpt4 key购买 nike

我正在实现一个系统,客户可以使用代金券获得购买折扣。代金券是否可用于特定购买取决于多种情况。

例如:

  • 正确的优惠券代码 - 代码是否正确?
  • 有效期 - 代金券是否仍然有效?
  • 代金券可以与购买类型一起使用吗?
  • 允许组合 - 代金券可以与其他代金券组合使用吗?
  • 还有很多...

还有一些更复杂的限制需要检查。如果不满足一项或多项限制,客户将无法使用代金券,我想通过“为什么”的解释来通知他/她有关失败的信息,例如,他不能使用此代金券:

“你不能使用这张代金券,因为它已经过时了。”

我现在的问题是:您将如何实现检查?
在自己的类中实现每个限制,将它们链接起来并抛出异常? (这里的问题,可能会执行几个相同的数据库查询)在一种方法中实现所有限制? (真的,为什么?)一般来说,如果对操作应用了复杂的限制,您如何实现一种机制,您必须将失败的详细信息告知客户?

谢谢,

最佳答案

就我个人而言,我只会用一种方法实现检查。凭单进入,错误消息消失(如果有)。

这将使所有代码都隐藏在该方法后面并使维护变得容易。一个地方检查是否有问题,一个地方在添加新东西时修改等等。

如果我们谈论的是大量测试,那么将方法更改为一个类(但同样责任在一个地方,不会将复杂性分散到各处)。

只是我的两分钱。

关于design-patterns - 如何解释具有复杂限制的操作失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2139739/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com