对于重构的学习,其实也是对于面向对象思想的提升锻炼,并且应该找到设计类的时候到底怎么样才能提升扩展性。
第一章,重构的小例子。
第一步:首先是找到代码泥团,也就是一个函数实现了多个功能,比较复杂的地方,抽取方法。
第二步:找到泥团代码的局部变量以及参数;一般来说,不会被修改的变量可以作为函数参数传进来,然后会被修改到,如果只有一个就当作返回值。
第三步:修改抽出来的函数的变量名等,使更加容易阅读;如果这个函数里面的某个变量在多处用到,直接用快捷键alt + shift + r 重命名。
上面是对于代码泥团初步的抽取重构,还是在一个类里面,然后,考虑这个函数所使用的参数信息,从类的角度开始重构。
第四步:观察函数的参数,一般来说,函数应该放在它所使用的数据所属的类中。所以这里amountFor()方法应该放到Rental类里。
第五步:然后去掉旧函数,有时候则保留并让它调用新的函数,因为如果此时旧函数是一个public的函数,并且其它类里面可能用到,又不想修改其它类的接口,那就是一种有用的方法。
第六步:去除临时变量。
第七步: