重构第十一章
5.Push Down Field(值域下移)
superclass中的某个值域只被部分(而非全部)subclass用到。将这个值域移到需要它的那些subclasses去。
Example:
class Employee...
int quota
class Salesman extends Employee...
class Engineer extends Employee...
Analyse:
和Push Down Method(函数下移)相同的实例,销售人员才有指标,所以Emoloyee中的quota变量没有在所有子类中没有被使用,所以可以使用Push Down Field(值域下移)的方法,将quota移到使用它的子类中。
End:
class Employee...
class Salesman extends Employee...
int quota
class Engineer extends Employee...
Conclusion:
Push Down Field(值域下移)恰恰相反于Pull Up Field。我们使用这个手法,将独属于某一子类的变量、值域,从superclass移出。
注意
重构必须在有单元测试的情况下,保证之前的功能修改后不收影响。切记!!!
网友评论