编写分类程序的最佳设计模式?

时间:2014-03-21 23:07:17

标签: design-patterns

我的分类程序非常简单。

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复杂性?

1 个答案:

答案 0 :(得分:1)

这听起来非常像20问题的着名二元决策树解决方案。将算法表示为数据的一种方法是构建二叉树,其中每个节点包含一个函数(或一个策略实例,相同的)决定是在树中向左还是向右。

My answer您可能也会对某个相关问题感兴趣。