《重构:改善既有代码的设计》 重新组织函数的使用方法 之 7

《重构:改善既有代码的设计》中提到过很多重构方法,关于重新组织函数的方法有9种。本文介绍:
移除对参数的赋值 remove assignments to parameters 

  • 名称:移除对参数的赋值 remove assignments to parameters
  • 概要:代码对一个参数(函数参数)进行赋值,以一个临时变量取代该参数的位置。
  • 动机:传值不会有太大影响。如果传入指针,而且不小心修改了指针地址,就会有大麻烦。尽量不要对函数传入参数值只参与计算,不进行赋值。
  • 做法:
    • 建立一个临时变量,把待处理的参数值赋予它
    • 以“对参数的赋值”为界,将其后所有对此参数的应用点,全部替换为“对此临时变量的引用”
    • 修改赋值语句,使其改为对新建之临时变量赋值
    • 编译,测试
    • 如果代码的语义是按引用传递的,请在调用端检查调用后是否还使用了这个参数。也要检查有多少个按引用传递的参数被赋值后又被使用。请尽量只以return方式返回一个值。如果需要返回的值不止一个,看看可否把需返回的大堆数据变成单一对象,或干脆为每个返回值设计对应的一个独立函数。
  • 代码演示:

修改之前的代码:

int Discount(int InputVal, int Quantity, int YearToDate)
{
   if (InputVal > 50)
   {
       InputVal -= 2;
   }
   return InputVal;
}

修改之后的代码:

int Discount(int InputVal, int Quantity, int YearToDate)
{
   int Result = InputVal;
   if (InputVal > 50)
   {
       Result -= 2;
   }
   return Result;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

giantmfc123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值