当有人说 " 噢, 我想我们总有一天需要做这件事", 并因而企图以各式各样的钩子和特殊情况来处理一些非必要的事情, 这种坏味道就出现了. 如果所有装置都会被用到, 那就值得那么做,如果用不到, 就不值得. 用不上的装置只会挡你的路, 所有,把它搬吧.
1,如果你的某个抽象类其实没有太大作用, 请运用 *Collapse Hierarchy(平移继承体系)*.
2,不必要的委托可运用 *Inline Class(内联类)*除掉.
3,如果函数的某些参数未被用上, 可对它实施 *Remove Parameter(移除参数)* .
4,如果函数名称带有多余的抽象意味, 应该对它实施 *Rename Method(函数更名)*, 让它现实一些.
如果函数或类的唯一用户是测试用例, 这就飘出了这种坏味道.
如果你发现这样的函数或者类, 请把他们连同其测试用例一并删除.
但如果它们用途是帮助测试用例检测正当功能, 当然必须刀下留人.