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

本文详细介绍《重构:改善既有代码的设计》一书中提出的内联函数重构方法,通过实例演示如何将函数本体直接嵌入调用点,提高代码可读性。遵循步骤,检查函数多态性,替换所有调用点,编译测试,最终删除原函数定义。

《重构:改善既有代码的设计》中提到过很多重构方法,关于重新组织函数的方法有9种。本文介绍:
内联函数 inline method

  • 名称:内联函数 inline method
  • 概要:一个函数的本体与名称同样清楚易懂。在函数调用点插入函数本体,然后移除该函数
  • 动机:函数本体比名称更易读
  • 做法:
    • 检查函数,确定它不具有多态性。如果子类继承了这个函数,就不要将此函数内联,因为子类无法覆写一个根本不存在的函数
    • 找出这个函数的所有被调用点,都替换为函数本体
    • 编译,测试
    • 删除该函数的定义
  • 代码演示:

修改之前的代码:

///////////////////////////.h

#ifndef REFACTORMETHOD_H
#define REFACTORMETHOD_H
#include <QString>
#include <QVector>


class RefactorMethod
{
public:
    int GetRating();
    bool MoreThanFiveLateDeliveries();

private:
    int m_NumberOfLateDeliveries;
};

#endif // REFACTORMETHOD_H


///////////////////////////.cpp

int RefactorMethod::GetRating()
{
    return (MoreThanFiveLateDeliveries()) ?  2 : 1;
}

bool RefactorMethod::MoreThanFiveLateDeliveries()
{ 
    return m_NumberOfLateDeliveries > 5;
}

修改之后的代码

///////////////////////////.h

#ifndef REFACTORMETHOD_H
#define REFACTORMETHOD_H
#include <QString>
#include <QVector>


class RefactorMethod
{
public:
    int GetRating();
private:
    int m_NumberOfLateDeliveries;
};

#endif // REFACTORMETHOD_H


///////////////////////////.cpp

int RefactorMethod::GetRating()
{
    return (m_NumberOfLateDeliveries > 5) ?  2 : 1;
}

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

giantmfc123

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

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

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

打赏作者

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

抵扣说明:

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

余额充值