如何使用决策表来帮助您的应用程序

时间:2008-09-22 19:20:11

标签: table-driven

我前段时间了解了决策树和决策表。我觉得决策表可以帮助处理有条件的If-Then-Else语句。特别是,我觉得决策表没有副作用,例如,如果你没有注意到你还需要一个“else if”语句。

但我不确定如何实现它。阵列?数据库表? 有人甚至在他们的代码中使用决策表吗?

5 个答案:

答案 0 :(得分:1)

我强烈推荐Code Complete的第18章。

您还可以查看此帖子What Are Table Driven Methods

答案 1 :(得分:1)

嗯,我做了自己的研究:S

  1. 这是关于用于制作测试方案的决策表的something from IBM
  2. 这是来自makes decision tables的公司,然后将其翻译为vb.net中的if-then-else语句。
  3. Open source ruby workflow and bpm engine使用决策表。
  4. 所以,我还在寻找。如果有人有一些好的答案,请输入。

答案 2 :(得分:1)

多平台,CCIDE-0.5.0-6(或更高版本)可在SourceForge和Github上获得。

请参阅http://twysf.users.sourceforge.net/

上的网页

答案 3 :(得分:0)

表驱动方法使用数据结构而不是if-then语句来驱动程序逻辑。例如,如果您正在处理两种类型的记录(电视与电缆),您可以这样做:

hash [tv] = processTvRecords

hash [cable] = processCableRecords

在某些语言中,如Ruby或Perl,这种技术很简单。在Java中,您需要使用Reflection来查找方法句柄。

如果您想了解决策表,请在http://fitnesse.org/调查Fitnesse测试框架。

答案 4 :(得分:0)

到目前为止,我在决策表中看到的最佳实现是一个名为Prologa的应用程序,可以在http://www.econ.kuleuven.be/prologa下载。不幸的是,它仅在Windows中可用,并且在您等待评估密钥时可能会有短暂的延迟。

该软件处理非二进制的条件,可以折叠类似的规则,并实际跟踪表当前覆盖的组合数,因此对于特别大的表的完整性检查非常有用。还可以优雅地处理嵌套表(其中一个表的结果可以是另一个表的条件)。