示例:
//重构前
function base(aReading){...}
function taxableCharge(aReading){...}
function calculateBaseCharge(aReading){...}
//重构后
class Reading{
base(){...}
taxableCharge(){...}
calculateBaseCharge(){...}
}
做法:
1、运用【封装记录】对多个函数公用的数据记录加以封装
如果多个函数共用的数据还未组织成记录结构,则先运用引入参数对象将其组织成记录。
2、对于使用该记录结构的每个函数,运用【搬移函数】 将其移入新类
如果函数调用时传入的参数已经是新类的成员,则从参数列表中去除之
3、用以处理该数据记录的逻辑可以用【提炼函数】提炼出来,并移入新类