该文章主要是描述如何使用重构方法来精简代码,使代码看起来更有灵性。
重构原则
1 | 1. 三次法则(事不过三,三则重构) |
代码坏味道
1 | Duplicated Code(重复代码) |
构筑测试体系
1 | 确保所有测试都完全自动化,让它们检查自己的测试结果。 |
重构列表
1 | 1. 重构记录格式: |
重新组织函数
Extract Method(提炼函数)
1 | motivation:喜欢简短而命名良好的函数,细粒度函数,被复用的机会更大,函数的覆写也更容易些 |
Inline Method(内联函数)
1 | /** |
Inline Temp(内联临时变量)
1 | double basePrice = anOrder.basePrice(); |
Replace Temp With Query(以查询取代临时变量)
1 | double basePrice = _quantity * _itemPrice; |
Introduce Explaing Variable(引入解释性变量)
1 | if ((platform.toUpperCase().indexOf("MAC") > -1) && |
Split Temporary Variable(分解临时变量)
1 | double temp = 2 * (_heigth + _width); |
Remove Assignments to Parameters(移除对参数的赋值)
1 | class Account { |
Substitude Algorithm(替换算法)
1 | String foundPerson(String[] people) { |
在对象之间搬移特性
Move Method(搬移函数)
1 | /** |
Move Field 搬移字段
1 | /** |
Extract Class(提炼类)
1 | /** |
Inline Class(将类内联化)
1 | class Person { |
Hide Delegate(隐藏“委托关系”)
1 | /** |
Remove Middle Man(移除中间人)
1 | class Person { |
Indroduce Foreign Method(引入外加函数)
1 | Date newStart = new Date(previous.getYear(), |
Indroduce Local Extension(引入本地扩展)
1 | /** |