Spiga

一天一个重构方法(25):字段上移

2009-08-15 17:44:12

Pull Up Field:字段上移

两个子类拥有相同的字段,将此一字段上移到父类

public abstract class Account
{
}
public class CheckingAccount : Account
{
	private decimal _minimumCheckingBalance = 5m;
}
public class SavingsAccount : Account
{
	private decimal _minimumSavingsBalance = 5m;
}

在这个例子中,两个子类中包含重复的常量。为了提高复用性我们将字段上移到基类中,并简化其名称。

public abstract class Account
{
	protected decimal _minimumBalance = 5m;
}
public class CheckingAccount : Account
{
}
public class SavingsAccount : Account
{
}

本项重构从两方面减少重复:首先它去除了重复的数据声明;其次它使你可以将使用该字段的行为从子类移至父类,从而去除重复的行为