当一个类中的某些方法并不是面向所有的类时,可以使用该重构将其迁移到子类中。我这里举的例子十分简单,它包含一个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;}
时间: 2024-10-20 02:28:17