1. 重复代码(duplicated code)
最常见的需要重构的地方。通常的解决办法也很容易。
把重复的代码提到一个函数里面,可以放到一个类里面,也可以提到一个单独的类里面。这其中的问题就是你要明确的了解应该把代码放到哪里面,如果两个子类都有同样的代码,应该把代码提到父类的函数里面。
模板对于结构相同,但参数不同的函数的提取也很有帮助。
2. 函数过长(long method)
解决这个问题就是把长函数变成多个短函数,听起来比较简单,但是函数中大量的变量会成为你的问题。解决大量的变量有一些成型的办法:
(1) Replace temp with query: 把对成员变量的调用表达式,变成对成员函数的调用。
double basePrice = _quantity * _itemPrice;
变成
double basePrice()
{
return _quantity * _itemPrice;
}