任务6:提炼计算函数
Last updated
Was this helpful?
Last updated
Was this helpful?
好,走到这里,我们已经离一开始前进了许多:奇怪的命名不见了,魔法字符串已经被更表意的枚举类型Unit
替代,表示英寸的f
也被很轻松地改成了Unit.FOOT
,收获不小!
接下来的任务,是消除一个不太明显的味道,也就是在as()
方法中重复的new Length
创建逻辑。仔细观察,其实Length
对象的创建过程,唯一区别是在计算不同的value
值。不过,要消除重复的对象创建代码,我们还得做点准备工作,那就是把这部分关于value
的计算逻辑先剥离出来。
Java:
JavaScript:
动手之前,先花几分钟思考一下重构步骤:如何做到平滑替换?
严格按照重构步骤执行重构,频繁运行测试
git checkout final
看一下参考步骤,找出与你设定步骤的异同
多练几遍
《重构 2》6.1 提炼函数(Extract Function)
《重构 2》10.3 以卫语句取代嵌套条件表达式(Replace Nested Conditional with Guard Clauses)