当一个类中的某些方法并不是面向所有的类时,可以使用该重构将其迁移到子类中。我这里举的例子十分简单,它包含一个Registration类,该类处理与学生注册课程相关的所有信息。

public class Registration {
public NonRegistrationAction action;

public Double registrationTotal;

public String notes;

public String description;

public Date registrationDate;
}
当使用了该类之后,我们就会意识到问题所在——它应用于两个完全不同的场景。属性NonRegistrationAction和Notes只有在处理与普通注册略有不同的NonRegistration时才会使用。因此,我们可以提取一个子类,并将这两个属性转移到NonRegistration类中,这样才更合适
public class Registration {
public Double registrationTotal;

public String description;

public Date registrationDate;
}

public class NonRegistration extends Registration{
public NonRegistrationAction action;

public String notes;
}
 
 





posted on 2016-08-19 09:33  jgig11  阅读(270)  评论(0编辑  收藏  举报