我前段时间了解了决策树和决策表。我觉得决策表可以帮助处理条件 If-Then-Else 语句。特别是,我觉得决策表没有副作用,例如,如果您没有注意到您还需要一个“else if”语句。
但我不确定如何实现它。数组?数据库表?现在有没有人在他们的代码中使用决策表?
我前段时间了解了决策树和决策表。我觉得决策表可以帮助处理条件 If-Then-Else 语句。特别是,我觉得决策表没有副作用,例如,如果您没有注意到您还需要一个“else if”语句。
但我不确定如何实现它。数组?数据库表?现在有没有人在他们的代码中使用决策表?
我强烈推荐Code Complete的第 18 章。
您还可以查看这篇文章什么是表驱动方法
好吧,我做了自己的研究:S
所以,我还在找。如果有人有好的答案,请输入。
SourceForge 和 Github 上提供了多平台 CCIDE-0.5.0-6(或更高版本)。
表驱动方法使用数据结构而不是 if-then 语句来驱动程序逻辑。例如,如果您正在处理两种类型的记录(电视与有线电视),您可以这样做:
哈希[tv] = processTvRecords
哈希[电缆] = processCableRecords
在某些语言中,例如 Ruby 或 Perl,这种技术很简单。在 Java 中,您需要使用反射来查找方法句柄。
如果您想了解决策表,请查看http://fitnesse.org/上的 Fitnesse 测试框架。
到目前为止,我见过的决策表的最佳实现是一个名为 Prologa 的应用程序,可从http://www.econ.kuleuven.be/prologa下载。不幸的是,它仅在 Windows 中可用,并且在您等待评估密钥时可能会有短暂的延迟。
该软件处理非二进制条件,可以折叠类似的规则,并实际跟踪您的表当前覆盖的组合数量,因此非常适合特别大表的完整性检查。还可以优雅地处理嵌套表(一个表的结果可以是另一个表的条件)。