简述
你的程序以一个临时变量保存某一表达式的运算结果,将这个表达式提炼到一个独立函数中。
double basePrice = _quantity * _itemPrice;
if (basePrice > 1000)
return basePrice * 0.95 ;
else
return basePrice * 0.98 ;
改为
if (basePrice() > 1000)
return basePrice() * 0.95 ;
else
return basePrice() * 0.98 ;
double basePrice() {
double basePrice = _quantity * _itemPrice;
}
动机
- 去掉临时变量,作为一个独立函数,能让类中函数都能使用这个函数,会带来极大的好处
- 往往是运用Extract Method之前必不可少的步骤
做法
- 找出只被赋值一次的临时变量,如果赋值多次考虑Split Temporary Varaiable分割成多个变量
- 临时变量右侧的表达式提炼到一个独立函数中,先声明private,如果提炼的函数修改对象内容,就要对它进行Separate Query from Modifler
- 编译测试
- 在该临时变量上实施Inline Temp
网友评论