在 Java 工作流程中使用哪种设计模式

use*_*366 3 java design-patterns

我想实现用于执行工作流的代码,但我想避免 if-else 语句链。我应该使用哪种设计模式?我看了一些,但没找到合适的

工作流程示例。

A-> if(B) do C,
if(!B) do D-> E -> if(F) do G,
if(!H) do I-> J-> K
and so on..
Run Code Online (Sandbox Code Playgroud)

Rob*_*Rob 5

这里还需要考虑的明显选择是责任链。在这种情况下,CoR 的问题是有时您并不真正提前知道路径是什么,因此布置所有可能的路径可能非常艰苦。当然,您可以使用构建器来构建链条(记住四人帮中的所有迷宫构建示例)。

CoR 的伟大之处在于,您的代码不会成为一个大神对象,每个“步骤”都有无能为力的棋子。

此外,CoR 还提供了很大的灵活性。如果客户过来并说“天啊,缺少两个关键步骤”,那么有人可能可以添加它们,而不会破坏许多其他东西的稳定性。单源编排是典型的上帝对象反模式,因此也许可以从 CoR 开始,并计划在耗尽资源时撤离。