什么设计模式适合处理很多条件分支

What design pattern is suitable for handing many conditional branching

我在 table 中有一堆行,其中存储了一些变量和关联值。我必须根据不同行的变量值来触发任务。 AND/OR 条件可以重叠来自多行的多个值。在这种情况下,哪种设计模式有助于降低圈复杂度?

比方说,Table

现在在运行时需要测试一些条件。例如,

如果 v1 列有任何值 'a' 或 'b' 并且第 3 行和第 4 行包含任何 'g' 或第 5 行的所有内容包含值 'f',等等

这种需求在一定的固定边界下是动态的,我必须准备一个接受输入 table 和条件的方法。该方法终于returnstrue/false。如果我天真地实现,我需要在完全有界的可能条件下嵌套 if/else,这会使我的代码变得非常复杂。什么是好的模式来处理它。

对于真实场景,我认为您应该查看规则引擎,请参阅 https://www.baeldung.com/java-rule-engines 以获取示例列表。

这里的要点是:在手写代码中表示您的规则无法扩展!没有好的模式可以防止这样的代码库随着时间的推移变成意大利面条代码。在现实世界中,此类规则经常更改,并且使您的代码保持最新状态通常会导致管道录音的另一个条件。

因此,我们拥有规则引擎,允许您以比手写的 if else 块级联更易于维护的方式表达此类复杂决策的元素。

事实是:如果您认真对待自己的工作质量,无论如何您很可能会自己实现自己的小规则引擎。那么,为什么不从架子上挑选一个,或者至少仔细研究一些,并将它们作为如何更好地解决问题的灵感?!