If statement 如果是深的,如果是别的树的替代品?
我最近有幸观察到一个代码,它本质上是几公里深的if-else语句。代码不断更新,跟踪可能的结果及其相互作用变得越来越困难。感觉一个人可以做得更好 我有一个想法,也许可以将if树分割成一个文件,将结果分割成另一个文件。也许人们甚至可以构建一个矩阵,其中每一行都是一个结果,每一个可能提出的问题都是一列。然后可以对这样一个矩阵执行一些基本的逻辑操作,以自动确定新添加的分支是否会干扰现有的分支 我知道这个想法非常模糊,但我相信一定有人考虑过在人工设计和编辑时间方面优化if-else树 是否有任何行业标准,以有效的方式处理深层if-else树木?如果是的话,我会很感激你的名字和链接If statement 如果是深的,如果是别的树的替代品?,if-statement,design-patterns,industrial,If Statement,Design Patterns,Industrial,我最近有幸观察到一个代码,它本质上是几公里深的if-else语句。代码不断更新,跟踪可能的结果及其相互作用变得越来越困难。感觉一个人可以做得更好 我有一个想法,也许可以将if树分割成一个文件,将结果分割成另一个文件。也许人们甚至可以构建一个矩阵,其中每一行都是一个结果,每一个可能提出的问题都是一列。然后可以对这样一个矩阵执行一些基本的逻辑操作,以自动确定新添加的分支是否会干扰现有的分支 我知道这个想法非常模糊,但我相信一定有人考虑过在人工设计和编辑时间方面优化if-else树 是否有任何行业标准
在这个特殊的例子中,我谈论的是C#,但我也感兴趣的是这个问题通常是如何解决的您的第二段巧妙地描述了一个决策表,它是分析和实现您描述的扭曲逻辑类型的标准技术。@HighPerformanceMark谢谢,这似乎是正确的方向。我会用谷歌搜索的it@AleksejsFomins看看Drools或JRules或任何其他内置决策表的规则引擎(而不是重新发明轮子)