版权声明:请注明转发出处 https://blog.csdn.net/mafucun1988/article/details/89349773
《重构:改善既有代码的设计》中提到过很多重构方法,关于重新组织函数的方法有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;
}