重构--改善既有代码的设计--读书笔记1
看了第一章的,敲出了所有的代码,共4版,自己理解写的比较少。以后慢慢在以后各章中补充吧。第一章看的还算顺利,可能代码太少了,还体会不深。
ver1
提取出accountFor()
拿到第一版本的代码,首先第一印象是statement()函数太长了。将长函数切分为几个短函数,当有新的功能函数需要实现时更好重用。
运用Extract Method提取switch代码段。
在大函数里面的局部变量,不会被修改的可以作为新的小函数的入参。
重构技术以微小的步伐前进,方便查错。
将accountFor()移到到Rental类中,因为他只用到了Rental中的信息。
使用了委托测试新修改后的代码。
移去原有的多余临时变量thisAccount,改成rental.getCharge(),这涉及到了重构与性能的问题。(在P69会再讨论) Replace temp with query
提取常客积点代码
点数计算的方式只与影片的类型有关。变化不会很多,先放到Rental中。
ver2
去除临时变量,totalAmount和frequentRenterPoints这两个临时变量
这样多带来了2次循环,但是提取成函数可以增加复用性。有利有弊
增加了一个htmlStatement()函数证明这点
多态取代switch
null
ver3
继承
因为影片类型变化较大,且他们就好像在回答一种问题。采用继承体系。
ver4