Switch语句
迹象和症状
你有一个复合体开关
的运算符或序列如果
语句。

问题的原因
相对较少的使用开关
而且情况下
运算符是面向对象代码的标志之一。通常代码为单一开关
可以分散在程序的不同地方。添加新条件时,必须找到所有的开关
编码并修改它。
根据经验,当你看到开关
您应该考虑多态性。
治疗
如果一个
开关
是基于类型代码的,例如当程序的运行时模式被切换时,使用用子类替换类型代码或将类型代码替换为状态/策略.指定继承结构后,使用用多态性替换条件型.
如果操作符中没有太多的条件,并且它们都使用不同的参数调用相同的方法,那么多态性将是多余的。在这种情况下,您可以将该方法分解为多个较小的方法将参数替换为显式方法然后改变
开关
相应的行动。如果其中一个条件选项是
零
,使用引入空对象.
回报
- 改进代码组织。
