重构改善既有代码的设计第一章读后总结

       本书的第一章主要讲解的是重构的一个小案例,个人感觉这比写一堆重构的理论来的好理解。

       这是一个影片租赁的案例有影片类(影片信息)、租赁类(影片及租赁天数)、顾客类(顾客姓名、租赁信息、详单),详单函数里面返回一个String类型的result里面记录了顾客的姓名、租赁每部影片的信息、总共要付的钱及顾客所得积分。一个函数完成了这么多的事情,在大型的项目中这不利于代码的复用也给后期代码的维护增加困难,所以此案例主要是对详单函数进行了重构。

      重构之前为即将要修改的代码建立一组可靠的测试环境是非常有必要的,这些测试还必须有自我检测的能力要么显示输出结果与参考结果一致要么列出失败清单显示问题出现的行号,这可以帮助你发现错误节约开发时间提高代码的质量。

      第一个步骤就是找出代码的逻辑泥团switch并提炼函数,在提炼函数之前必须要分析清楚这样做可能会出什么错,如果提炼的不好就可能给程序引入bug。提炼完函数后要进行编译测试,看你的修改是否引入bug。将switch提炼出来之后还可以修改函数里面的变量名称使其看起来更清爽通熟易懂,但是改完后还需编译测试确保没有破化任何东西。修改完后感觉计费的方法放在顾客类里并不是很合适所以进行搬移函数的操作,将计费方法搬移至租赁类里,然后去详情方法中将对应switch的那段代码换成租赁类对象调用计费方法。之前的thisAmount也变的多余因为它就等于函数的返回结果所以以查询取代临时变量将thisAmount除去,每做完一个操作都要编译测试。重构技术就是以微小的步伐修改程序,如果犯下错误很容易便可发现。这一路下来已将详情方法中关于计费的代码提炼出来。用同样的方法对常客积分计算部分的代码进行重构提炼出的方法放在租赁类里。然后将类里面的成员变量都使用自封装字段确保任何时候都通过取值和设置函数来访问。

    从本例中可以看出重构的节奏:测试、小修改、测试、小修改、测试、小修改、、、,所以测试对重构而言是很重要的它让重构得以快速而安全的前进。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值