重构的信号:
1、重复代码
同一个类,多次使用到相同代码,提到一个独立函数
不同的类,多次使用到相同代码,提到一个独立的类
2、过长函数
(1)注释
每当感觉需要用注释来说明点什么的时候,就把需要说明的东西写进一个独立函数中,并以其用途命名。不要嫌麻烦。可以对一组甚至短短一行代码做这件事,哪怕替换后的函数调用动作比函数自身还长,只要函数名称能够解释其用途,也应毫不犹豫地那么做。
(2)条件表达式、循环
条件表达式:若条件逻辑复杂,分解为多个子函数
循环:提到单独的子函数中
(3)过多变量
过长函数中往往有太多变量,影响可读性
(4)过长参数列
太长参数列难以理解,不易使用,可以找到包含这些参数的某个对象,或者将多个参数封装成一个新的对象来传递
3、分散式变化、散弹式修改
分散式变化:一个类受多种变化的影响
散弹式修改:一种变化引发多个类相应修改,可以把所有需要修改的代码放进同一个类