重构第十一章
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移出。
注意
重构必须在有单元测试的情况下,保证之前的功能修改后不收影响。切记!!!
网友评论