重新组织函数 - Replace Temp with Query

简述

你的程序以一个临时变量保存某一表达式的运算结果,将这个表达式提炼到一个独立函数中。

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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容