原文链接:https://sourcemaking.com/refactoring/smells/oo-abusers
说明:所有这些代码异味都是不完整或不正确的面向对象编程原则的应用。
switch语句(Switch Statements)
你有一复杂的的switch操作语句或者一系列的if语句
临时字段(Temporary Field)
临时字段只有某些情况下才能获取他的值(比如只一个方法内部,临时变量只在这个方法内有效),除此之外他们都是空的。
继承过多(Refused Bequest)
如果子类只使用从其父类继承的少量的方法和属性,那么层次结构就是off-kilter。 不需要的方法可以简单地标记为未使用或重新定义并抛出异常。
解决方法:使用代码来替代继承关系
相似的类使用不同接口 (Alternative Classes with Different Interfaces)
相似的类,有不同接口
解决方法:重命名函数,或者抽象子类。