一个重构的例子
在看《程序员的呐喊》里面看到了关于《重构》这本书的一些描述
我注意到《重构》这本书是在2002年的时候,距离它出版已经好多年了。之前一直没读是因为出版它的是那帮搞UML的蠢货。我从来都不是他们的粉丝。
…
《重构》偏偏就和这样的一堆烂书挤在一起,每次看到它我都直接扫过,从不停留一秒。别在烂书上浪费时间.直到2002年冬, 我在一家书店拿起它。没有什么特别的原因,纯碎是出于好奇而已。或许我在其他什么地方听到过“重构”这个词吧。
…
接着一股恐惧袭上心头:他居然说的没错,有理有据。我最自豪的编程习惯——把中间值保存在局部变量里,作为简单的性能优化——显然是个坏习惯。中明明白白展示了这一点。它解释了我代码里某些方法为什么不断膨胀,那就是因为这些方法无法分割,这一点我之前我从未想到过。
…
这本书接着告诉我,不要写注释。又是疯话!可他说的确有道理。
…
我掏钱买它回家,反复研读。彻底震惊,太天才了。时至今日我也依然这么觉得,虽然那种震撼没有当天那么巨大。但这本书是在乃惊世之作,好似醍醐灌顶。这种事情可不常见。
看到这样的描述都没有办法不去把它买回来好好研读一番,而且一开始对这本书的感受也跟他描述的一样,看见过很多次,但总感觉是本烂书,都不想翻开。今天是新年第一天,正好适合醍醐灌顶,于是从第一个例子开始,仔细研究,这里也用Swift来重写这个例子。原书中用的Java,所以会在一些特性上有所不同,而且我对Swift的理解也很有限,还没有完整的用Swift开发过一个产品,所以难免会有用的不妥当的特性。
源代码地址在此