zoukankan      html  css  js  c++  java
  • 重构手法

    重构手法
    1.0 Extract Method 提炼函数:你有一段代码可以被组织在一起并独立出来。
    做法:将这段代码放进一个独立函数中,并让函数名称解释该函数的用途。
    2.0 Inline Method 内联函数:一个函数的本体与名称同样清楚易懂。
    做法:在函数调用点插入函数本体,然后移除该函数。
    3.0 Inline Temp 内联临时变量:你有一个临时变量,只被一个简单表达式赋值一次,而它妨碍了其他重构手法。
    做法:将所有对该变量的引用动作,替换为对它赋值的那个表达式自身。
    4.0 Replace Temp with Query 以查询取代临时变量:你的程序以一个临时变量保存某一表达式的运算结果。
    做法:将这个表达式提炼到一个独立函数中。将这个临时变量的所有引用点替换为对新函数的调用。此后,新函数就可被其他函数使用。
    5.0 Introduce Explaining Variable 引入解释性变量:你有一个复杂的表达式。
    做法:将该复杂表达式(或其中一部分)的结果入进一个临时变量,以此变量名称来解释表达式用途。也可以用Extract Method(如果花费工作量不大)。
    6.0 Split Temporary Variable 分解临时变量:你的程序有某个临时变量被赋值超过一次,它既不是循环变量,也不被用于收集计算结果。
    做法:针对每次赋值,创造一个独立、对应的临时变量。每个变量只承担一个责任。
    7.0 Remove Assignments to Parameters 移除对参数的赋值:代码对一个参数进行赋值。
    做法:以一个临时变量取代该参数的位置。
    8.0 Replace Method with Method Object 以函数对象取代函数:你有一个大型函数,其中对局部变量的使用使你无法采用Extract Method;
    做法:将这个函数放进一个单独对象中,如此一来局部变量就成了对象内的字段。然后你可以在同一个对象中将这个大型函数分解为多个小型函数。
    9.0 Substitute Algorithm 替换算法:你想要把某个算法替换为另一个更清晰的算法。
    做法:将函数本体替换为另一个算法。

  • 相关阅读:
    LuoguP4463 [集训队互测2012] calc DP+拉格朗日插值
    一些图的计数
    redis补充1之为什么要用 Redis/为什么要用缓存?
    redis补充4之Redis 和 Memcached 的区别和共同点
    redis补充3之为什么要有分布式缓存?/为什么不直接用本地缓存?
    redis补充2之简单说说有哪些本地缓存解决方案?
    1_java语言概述-注释与API文档等
    1_java语言概述-开发环境搭建
    weblogic 2021.4.20 季度补丁
    mysql source输出记录日志
  • 原文地址:https://www.cnblogs.com/ICE_Inspire/p/5136220.html
Copyright © 2011-2022 走看看