软件设计重构秘笈5式-04提升字段
概念
本文中的提升字段和前面的提升方法颇为相似,就是把子类公用的字段提升到基类中,从而达到公用的目的。
意图
提升字段就是把子类公用的字段提升到基类中,从而达到公用的目的
如下代码所示, Account 的两个子类CheckingAccount 和SavingsAccount 都有minimumCheckingBalance 字段,所以可以考虑把这个字段提到基类中。
案例
public abstract class Account {
}
public class CheckingAccount extends Account {
private int minimumCheckingBalance = 1;
}
public class SavingsAccount extends Account {
private int minimumCheckingBalance = 1;
}
重构
重构后的代码如下,这样提的前提是这些子类有一个基类或者有很多相似的字段和方法,不然为了一个字段而单独建立一个抽象类是不可取的,所以这个就需要具体权衡。
public abstract class Account {
protected int minimumCheckingBalance = 1;
}
public class CheckingAccount extends Account {
}
public class SavingsAccount extends Account {
}
总结
这个重构的策略比较简单,同时也是比较常用的一些做法,
最主要就是要注意权衡是否真的有这个必要,看这样做究竟有没有什么好处(比如只需要改一个地方,维护简便了,同时代码量也更少了等)。