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

3464

被折叠的 条评论
为什么被折叠?



