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

《重构:改善既有代码的设计》中提到过很多重构方法,关于重新组织函数的方法有9种。本文介绍:
以查询取代临时变量 replace temp with query

  • 名称:以查询取代临时变量 replace temp with query
  • 概要:以一个临时变量保存某一个表达式的运算结果。将这个表达式提炼到一个独立函数中,将这个临时变量的所有引用点替换为对新函数的调用。此后,这个新函数就可以被其他函数使用。
  • 动机:临时变量会导致函数变的更长。而新函数可以被其他函数复用
  • 做法:
    • 找出只被赋值一次的临时变量。如果临时变量被赋值超过一次,先使用split temporary variable 将它分割成多个变量。
    • 将对该临时变量赋值的语句的等号右侧部分提炼到一个独立函数中。首先将函数声明为private,将来修改叶可以。
    • 编译,测试
    • 在该临时变量身上实施 inline temp
  • 代码演示:

修改之前的代码:

    double BasePrice = m_Quantity * m_ItemPrice;
    double DiscountFactor = 0; 
    if (BasePrice > 100)
    {
        BasePrice = 0.95;
    }
    else
    {
        BasePrice = 0.98;   
    }
    return DiscountFactor * BasePrice;

修改之后的代码:

double RefactorMethod::GetPrice()
{
    return GetBasePrice() * GetPrice();
}

double RefactorMethod::GetBasePrice()
{
    return m_Quantity * m_ItemPrice;
}

double RefactorMethod::DiscountFactor()
{
    if (GetBasePrice() > 100)
    {
        return 0.95;
    }
    else
    {
        return 0.98;   
    }
}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

giantmfc123

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

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

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

打赏作者

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

抵扣说明:

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

余额充值