gpt4 book ai didi

java - 责任链 [GoF] 缺点

转载 作者:搜寻专家 更新时间:2023-11-01 01:45:26 24 4
gpt4 key购买 nike

我们需要构建一个解决方案来处理销售订单。处理是连续进行的:每个步骤负责特定的任务:检查客户是否有信用,检查所需元素是否有库存等。

我们想到使用 chain of responsibility pattern .

我找到了 this old but very valuable article .它首先将 CoR 与模板模式进行比较。由于我们不关心耦合,因此它们似乎都有效。

有什么我应该注意的缺点(或陷阱等)吗?

最佳答案

这并不是一个很好的选择:责任链模式是关于委派早期步骤无法处理的任务。

在您的情况下,您希望应用每个 步骤,因此 CoR 并不真正适用。

您真正想要的是某种业务流程引擎,例如jBPM .流程引擎旨在准确处理这种情况,并为您提供许多在手动解决方案中难以实现的功能,例如:

  • 能够将长期运行的进程持久保存到数据库中。尝试调试丢失的订单并不有趣,因为您必须重新启动服务器....
  • 能够在消息队列中等待外部事件(例如从远程系统获得确认)。在一些简单的情况下可能不需要它,但如果您要与外部供应商集成,它就变得必不可少。
  • 处理异常情况和流程回滚/补偿
  • 事件记录和报告

基本上,这是我建议不要重新发明轮子的情况之一......

关于java - 责任链 [GoF] 缺点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12188705/

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