前段时间我了解到决策树和决策表。我觉得决策表可以帮助处理有条件的If-Then-Else陈述。特别是,我觉得决策表没有副作用,例如,如果你没有注意到你需要再多一个“else if”语句。如何使用决策表来帮助您的应用程序
但我不知道如何实现它。阵列?数据库表? 有人甚至在他们的代码中使用决策表,现在呢?
前段时间我了解到决策树和决策表。我觉得决策表可以帮助处理有条件的If-Then-Else陈述。特别是,我觉得决策表没有副作用,例如,如果你没有注意到你需要再多一个“else if”语句。如何使用决策表来帮助您的应用程序
但我不知道如何实现它。阵列?数据库表? 有人甚至在他们的代码中使用决策表,现在呢?
我强烈推荐Code Complete的第18章。
你也可以查看这个帖子What Are Table Driven Methods
好吧,我做我自己的研究:S
所以,我现在还在找。如果任何人有一些很好的答案,请输入。
表驱动方法使用的数据结构,而不是假设性陈述来驱动程序逻辑。例如,如果您正在处理两种类型的记录(电视与有线电视),你可以这样做:
哈希[TV] = processTvRecords
哈希[电缆] = processCableRecords
在有些语言,如Ruby或Perl,这种技术很简单。在Java中,您需要使用Reflection来查找方法句柄。
如果您想了解决策表,在http://fitnesse.org/ investiagethe FitNesse的测试框架。
到目前为止,我已经看到了决策表最好的实现被称为Prologa的应用程序,这是可供下载http://www.econ.kuleuven.be/prologa。不幸的是,它只能在Windows中使用,并且在等待评估密钥时可能会有短暂的延迟。
该软件处理那些非二进制的条件下,可以折叠类似的规则,实际上会跟踪你的表目前占地面积所以这是伟大的完整性检查特别大表组合的数量。也适度地处理嵌套表(其中一个表的结果可以是另一个表的条件)。
多平台,CCIDE-0.5.0-6(或更高版本)可在SourceForge和Github上。
查看网页