重构——3内联临时变量(Inline Temp)

简介: 内联临时变量(Inline Temp):你有一个临时变量,只被一个简单表达式赋值一次,而它妨碍了其他重构手法。将所有对该变量的引用动作,替换为对它赋值的那个表达式自身

内联临时变量(Inline Temp)

你有一个临时变量,只被一个简单表达式赋值一次,而它妨碍了其他重构手法。将所有对该变量的引用动作,替换为对它赋值的那个表达式自身

一、动机

1、作为“以查询取代临时变量”的一部分使用

2、临时变量妨碍了其他的重构手法

二、做法

1、检查给临时变量赋值的语句,确保等号右边的表达式没有副作用

2、如果这个临时变量并未被声明为final,就将它声明为final,然后编译,确保这个变量真的只被赋值了一次

3、找到该临时变量的所有引用点,将它们替换为“为临时变量赋值”的表达式

4、每次修改后,编译并测试

5、修改完所有的引用点之后,删除该临时变量的声明和赋值语句

6、编译,测试

目录
相关文章
|
7天前
|
存储 安全 编译器
【C++】基础知识讲解(引用、内联、auto,基于范围for循环)
【C++】基础知识讲解(引用、内联、auto,基于范围for循环)
16 1
|
4月前
|
存储 安全 编译器
开启C++之旅(下):引用、内联函数及现代特性(auto和范围for循环)
开启C++之旅(下):引用、内联函数及现代特性(auto和范围for循环)
49 0
|
10月前
|
编译器 C++
[c++17新增语言特性] --- 内联变量 和 if
[c++17新增语言特性] --- 内联变量 和 if
162 0
|
5月前
|
编译器 Linux C++
关于inline函数声明和定义为什么不可以分离
关于inline函数声明和定义为什么不可以分离
32 0
|
10月前
|
Python
#PY小贴士# for 循环定义的变量,循环外可以用吗?
我们知道,在 python 中要获取一个变量的值,必须是先给它赋值过,不然就是未定义。那么这个 i,代码中没有显式的赋值,在循环体之外还可以用吗?
|
10月前
|
存储 安全 算法
02-📝C++核心语法|C++对C的扩展【::作用域运算符、名字控制、struct类型加强、C/C++中的const、引用(reference)、函数】
复习`C++核心语法`,且适当进行汇编探索底层实现原理,进一步夯实基础,为以后的`底层开发`、`音视频开发`、`跨平台开发`、`算法`等方向的进一步学习埋下伏笔。
02-📝C++核心语法|C++对C的扩展【::作用域运算符、名字控制、struct类型加强、C/C++中的const、引用(reference)、函数】
|
Java
变量的引入:int语句的使用
变量的引入:int语句的使用
75 0
|
存储 自然语言处理 安全
【C++】C++入门 --- 命名空间 | 输入输出 | 缺省函数 | 函数重载 | 引用 | 内联函数 | auto关键字 | 基于范围的for循环 | 指针空值
命名空间 | 输入输出 | 缺省函数 | 函数重载 | 引用 | 内联函数 | auto关键字 | 基于范围的for循环 | nullptr
135 0
【C++】C++入门 --- 命名空间 | 输入输出 | 缺省函数 | 函数重载 | 引用 | 内联函数 | auto关键字 | 基于范围的for循环 | 指针空值
|
缓存 API
如何写出高质量的代码 data 组件 函数 注释 命名 变量的次数
如何写出高质量的代码 data 组件 函数 注释 命名 变量的次数