任务3:创建Player对象
进展到这里,我们仍然没有尝试去理解代码的结构,只是一直在进行“识别坏味道”-“消除坏味道”的动作。相反,通过一些简单的清理工作,我们似乎更多地了解到代码的一些含义,比如,我们重命名出来goldCoins
这个变量,完全是从代码原有的日志中提取得到,这使我们知道,player
正确回答了问题以后,会获得一枚金币。
消除了代码重复以后,整个类的代码行数已经有所减少,并且我们也隐约嗅到一丝其他的坏味道:我们提炼出了两个以getCurrentPlayerXXX()
开头的方法,这似乎暗示着它在频繁伸手去操作“当前玩家”的数据——这正是一种“依恋情结”的味道,它意味着,某些数据放到Player
这个对象上去可能会更好。
然而,我们目前为止还没有一个Player
对象。因此,这一步的任务便是先创建一个Player
对象,并将少量行为搬移到Player
对象上。
你的任务
Java:
JavaScript:
创建
Player
对象将
playerName
字段搬移到Player
对象将
goldCoins
字段搬移到Player
对象
反思
你从什么地方开始提炼类的工作?
提炼的过程是否能保持代码时刻可以工作?
参考资料
《重构 2》7.5 提炼类(Extract Class)
《重构 2》8.1 搬移函数(Move Functions)
Last updated
Was this helpful?