我需要根据一组相当大的 8 个相互依赖的条件做出决定。
| A | B | C | D | E | F | G | H
-----------+---+---+---+---+---+---+---+---
Decision01 | 0 | 1 | - | 1 | 0 | 1 | - | 1
Decision02 | 1 | 0 | - | 0 | 0 | - | 1 | -
...
Decision11 | 1 | 0 | 1 | 1 | 1 | - | 1 | 1
从 A 到 H 的每个条件都可以是真 (1)、假 (0) 或与决策无关 (-)。
所以对于给定的输入
A B C D E F G H
1 0 1 0 0 1 1 1
它应该评估为Decision02。
决策是明确的,因此从任何给定的输入条件集中,必须做出哪个决策是很清楚的(并且在决策矩阵未涵盖的情况下,应抛出异常)。
在我之前从事这个项目的开发人员试图将其实现为一个 500 行长的嵌套 if 庞然大物,这当然是错误的,而且不可维护。
所以我寻找了实现这样一个逻辑的最佳方法,我遇到了决策表/查找表/控制表。
我发现了很多决策表生成器,但没有找到关于如何实现决策过程的代码:(
我可以在底层 MSSQL 数据库、代码、xml 或其他任何方式中制作决策表。我只需要一些关于如何实现这一点的指示。
实现此逻辑的最佳实践是什么?字典?多维数组?完全不同的东西?