重构——4以查询取代临时变量(Replace Temp with Query)

简介: 以查询取代临时变量(Replace Temp with Query):你的程序以一个临时变量保存某一个表达式的结果。将这个表达式提炼到一个独立函数中,将这个临时变量所有的引用点替换为对新函数的调用,此后,新函数就可以被其他函数使用

以查询取代临时变量(Replace Temp with Query)

你的程序以一个临时变量保存某一个表达式的结果。将这个表达式提炼到一个独立函数中,将这个临时变量所有的引用点替换为对新函数的调用,此后,新函数就可以被其他函数使用

一、动机

临时变量是暂时的,只能在所属函数中使用

二、做法

1、找出只被赋值一次的临时变量

2、将该临时变量声明为final

3、编译

4、将“对该临时变量赋值”之语句的等号右侧部分提炼到一个独立函数中。首先将函数声明为“private”,日后有需要在放松保护,确保提炼出来的函数无任何副作用

5、编译,测试

6、在该临时变量身上实施Inline Temp

目录
相关文章
|
6月前
|
SQL 关系型数据库 PostgreSQL
PostgreSQL【SQL 01】根据条件更新字段值或追加信息STRPOS(string, substring)函数使用及LIKE函数对比
PostgreSQL【SQL 01】根据条件更新字段值或追加信息STRPOS(string, substring)函数使用及LIKE函数对比
157 0
|
JavaScript 数据安全/隐私保护 开发者
JS逆向 -- 某视频val值和pid值的加密分析
JS逆向 -- 某视频val值和pid值的加密分析
80 0
|
前端开发
前端 window.print() 打印方案、优化策略总结(一)
前端 window.print() 打印方案、优化策略总结(一)
818 0
前端 window.print() 打印方案、优化策略总结(一)
|
JSON 前端开发 JavaScript
前端 window.print() 打印方案、优化策略总结(二)
前端 window.print() 打印方案、优化策略总结(二)
457 0
|
SQL 关系型数据库 MySQL
mysql sum函数中对两字段做运算时有null时的情况
mysql sum函数中对两字段做运算时有null时的情况
186 0
|
SQL 关系型数据库 MySQL
十一、操作delete或者update语句,加个limit或者循环分批次删除
十一、操作delete或者update语句,加个limit或者循环分批次删除
318 0
重构——29以数据类取代记录(Replace Record with Data Class)
以数据类取代记录(Replace Record with Data Class):你需要面对传统编程环境中的记录结构;为该记录创建一个“哑”数据对象
1560 0
|
SQL 关系型数据库 数据库
PostgreSQL 同名 index operator search_path优先级引入的一个问题 - 为啥突然不走索引了? - intarray示例
标签 PostgreSQL , intarray , ops , operator , OPERATOR , 操作符路径 , search_path , 优先级 背景 操作符是数据库最常用的要素之一,一个SQL语句中总是会出现它的影子。
1255 0
重构——19以对象取代数据值(Replace Data Value with Object)
以对象取代数据值(Replace Data Value with Object):你有一个数据项,需要与其他数据和行为一起使用才有意义;将数据项变为对象
1678 0
下一篇
无影云桌面