如何解决if语句太多
-
【用策略模式】定一个策略基类,然后针对每个if实现一个策略子类,然后利用传入进来的参数,去匹配采用的策略,有点类似分治思想。
-
【用哨兵伪节点】我们一般习惯用if去判断边界问题,对于非边界的问题不需要用if,那么我只需要给当前边界问题加上前继和后继的哨兵伪节点,就可以做到不需要用if语句了。
-
【用驱动表模式】,创建一个actionmap,key就是我们的条件case, value就是针对这个case所对应的处理函数handle. 这样也可以避免写很多if 。
-
【使用责任链模式】, 即,将多个if,分成n组if,每一个if组封装成一个责任链节点,然后把参数传递给责任链,责任链的节点传递执行判断。多了责任链的这层封装,就不会有一堆难以读懂的if语句堆叠了。