我的分类程序非常简单。
categorize(life) {
if (life.heart)
return animal
else
return plant
}
然后生活变得复杂,并且增加了更多检查
categorize(life) {
if (life.heart)
if (life.onland)
return landanimal;
else
return wateranimal;
else
if (life.land )
return landplant
else
return treeplant
}
但事情并没有就此结束,很快动物就变成了爬行动物,哺乳动物等,如果 - 其他就开始变得杂乱无章。
建议使用哪种设计模式来解决这种嵌套的if-else复杂性?
答案 0 :(得分:1)
这听起来非常像20问题的着名二元决策树解决方案。将算法表示为数据的一种方法是构建二叉树,其中每个节点包含一个函数(或一个策略实例,相同的)决定是在树中向左还是向右。
My answer您可能也会对某个相关问题感兴趣。