第五章:
重构的记录格式:名称、简短概要、动机、做法、范例
寻找引用点:找到对于某个函数、某个字段或某个类的所有引用点,可以通过删除引用点,让编译器帮助找到被悬挂的引用点;
这些重构手法有多成熟:基本技巧:小步前进,频繁测试,这些重构手法都是基于单进程软件的。
第六章:
处理过长函数:提取函数出来,注意局部变量
- 6.1提炼函数 函数粒度变小,复用性变强;高层函数可读性变强;函数的复写也容易多。
做法:创建新函数-》复制代码段到函数中-》检查临时变量,设置入参-》设置局部变量-》编译,测试
- 6.2 内联函数: 当函数代码和函数一样清晰明了,直接使用函数的代码,避免使用函数。
做法:检查函数,不具备多态性-》找出所有被调用点,并替换-》编译,测试-》删除函数定义。
- 6.3 内联临时变量:变量被赋予某个函数的返回值,只使用了一次,阻碍了其他重构手法时,可以将变量去掉。
- 6.4 以查询取代临时变量 把表达式提炼到独立的函数,对这个表达式的操作改成对函数的调用
- 6.5 引入解释性变量 将复杂的表达式的结果放进一个临时变量来解释该表达式的用途
- 6.6 分解临时变量 当临时变量被使用超过一次,既不是循环变量,也不是结果收集变量,针对每次赋值都创造一个独立、对应的临时变量。
- 6.7 移除对参数的赋值 以一个临时变量取代该参数的位置 java
- 6.8 以函数对象取代函数 当一个函数很大,其中的局部变量无法提取时,可以将该函数设计成一个对象来操作,其中的局部变量就成了对应的成员变量
- 6.9 替换算法 将函数本体替换成另一个算法。做法:准备好替换的算法,编译,测试,以原算法的结果为准进行测试。