重构的目的:在不改变现有行为的基础上,改善代码的结构和设计
重构的效果:代码更容易解读;效率不会变高 可能还会变低;但是可扩展性变高;更容易修改
重构的基础:写一个好点的单元测试 经得起考验的Unit Test
项目中的Code Smells:
- 多条代码注释
- 重复代码块
- 魔法数字 (本应该不可变的数字被声明成变量)
- 数据簇
- 无法沟通的名字
- 抽象干扰 (比如 if 判定条件里的1w行判定代码)
- 死亡代码 (程序无法到达的代码)
- 特性嫉妒
- 原始类型迷恋 更习惯使用现有的属性 而不愿意将几个现有的属性抽成一个对象
解决Code Smells的方法:
- 删除代码注释 ctrl + y 删除整行
- 提取方法 ctrl + alt + m 提取方法
- 提取变量抽成常量 ctrl + alt + c 提取常量
- 内联变量 ctrl + alt + n 内联变量
- 重命名 shift + f6
- 提取参数对象 修改函数签名
- 内联方法 提取参数
以多态取代switch case语句
参数对象化:就是上面说的提取参数对象