名称 动机 输入 输出
Extract Method

函数过长

不方便阅读

简短而良好的函数命名

需对局部变量进行处理

函数复写容易

阅读性增强

复用机会变大

 

Inline Method

内部代码和函数名称

一样清晰易读

一组不合理的函数

重新重构

 检查函数,确定不具有多态性;

函数被调用点

       间接性降低

 

 

名称 动机 输入 输出
Inline Temp

一个临时变量

仅被赋值一次

阻碍重构

将变量先赋值成final,

以确定是否只赋值一次

简介
Replace Temp with Query

临时变量的临时性

驱使生成长的函数。

临时变量可以被所有函数访问

将表达式替换为一个独立函数

临时变量只赋值一次

便于重构                      
Introduce Explaining Variable

复杂表达式转换为一个临时变量

易于阅读

一个final 变量 易于阅读
Split Temporary Variable

一个临时变量被赋值多次

每个变量只负责一个责任

针对每次赋值,创作一个独立,对应的临时变量 多个责任的变量,会使用户糊涂

 

            Move Method          

  检查sourceclass 关联的属性;

检查sourceclass的superclass 和subclass

targetclass 声明

如何从source正确引用 target Object;

source method   

变成委托函数

需调整对 source method 的调用,变成对target method的调用

降低耦合         
Move Field

某个field频繁被另一class用到

需确定何时在source object中使用target object

source filed ---> target

 

class 函数专一

高内聚