我需要知道是更好的我作出决定表或如果-否则的声明。如果决策表更适合下面的规则,请告诉我制作它所需的基本代码是什么。我试过使用if- not语句来实现它,但是输出不是我想要的。这个问题适用于百家乐游戏,以下是规则:
发布于 2013-10-09 09:34:03
原则上,您应该使用决策表/开关等(如果您担心通过案例进行有效处理),一旦if-否则-if子句上升到5或更多(只是一个足以影响平均访问时间的值)。
更新:5在任何地方都没有编写。我用它来说明一个概念,虽然我记得在开关用例为8或更多的时候,我见过一些编译器做过,但那是很久以前的事了。
其基本原理是手动遍历每个if子句将导致线性越出,对于决策表而言,访问将是常数时间。
在实践中,您的代码已经被每一个优秀的编译器优化为,一旦大量情况出现,就会将其放入决策表/哈希表中,因此这是无关紧要的。
Following会有帮助的。注意,选择开关或决策表,或者是否也取决于,测试子句是如何构造的。开关只适用于整数值。如果您无法将要被随机访问的测试条件关联起来,那么您可能没有其他选择,而只能使用If - another。
发布于 2013-10-09 09:46:03
选择最易读和最可维护的解决方案。在实际演示性能问题之前,不要担心优化。
发布于 2013-10-10 03:48:07
从您的评论中,您已经提到使用决策表更好,因为有很多规则。
这在某种程度上是正确的,但并不是真的。
根据你的描述,有很多规则是为了不同的目的而制定的。不管您正在编写决策表或手工手工,如果-否则,您仍然需要根据规则的使用和上下文正确地组织规则,并分离“业务流程”来使用这些规则。
如果您没有这样做,那么使用决策表就更难编写代码,也更难读取。
当您考虑使用决策表(这意味着您要使用规则引擎)时,可读性可能不是最重要的因素。使用规则引擎的主要原因是为了便于将来规则的改变。如果您没有预见到这种需求,我强烈建议使用结构正确的代码“手工制作”逻辑。
https://stackoverflow.com/questions/19268068
复制相似问题