《重构:改善既有代码的设计》中提到过一些代码的坏味道,针对这些坏味道,需要进行重构。
switch 惊悚现身 switch statments
- 问题1:同样的switch散步于不同地点,如果要添加一个新的case句子,就要找到所有的switch 并修改它们。
- 解决方案:使用多态来替换switch。
- 解决方案:switch语句常常根据类型码进行选择,如果与该类型码相关的函数或类,使用extract method 将switch语句提炼到一个独立函数中,再以move method将它搬移到需要多态性的那个类中。
- 解决方案:如果是单一函数中有些选择事例,可以用replace parameter with explicit methods
- 解决方案:如果你的选择条件之一是null, 可以试试 introduce null object