重构读书笔记-11_4-Pull_Down_Method

重构第十一章

4.Push Down Method(函数下移)

superclass中的某个函数只与部分(而非全部subclass有关)。将这个函数移到相关的那些subclasses去。

Example:

class Employee...
    double getQuota() {
        ....
    }
class Salesman extends Employee...
class Engineer extends Employee...

Analyse:
根据实际情况,只有销售人员会检测指标,工程师等雇员没有指标这一项,所以getQuota()这个行为是销售人员独有的,可以从superclass中下放到Salesman中。

End:

class Employee...
class Salesman extends Employee...
    double getQuota() {
        ....
    }
class Engineer extends Employee...

Conclusion:

Pull Down Method恰恰相反于Pull Up Method。我们使用这个手法,将独属于某一子类的行为,方法,从superclass移出。

注意

重构必须在有单元测试的情况下,保证之前的功能修改后不收影响。切记!!!

你可能感兴趣的:(重构读书笔记-11_4-Pull_Down_Method)