示例:
//重构前
function amountInvoiced(startDate, endDate){...}
function amountReceived(startDate, endDate){...}
function amountOvedue(startDate, endDate){...}
//重构后
function amountInvoiced(aDateRange){...}
function amountReceived(aDateRange){...}
function amountOvedue(aDateRange){...}
做法:
1、如果暂时还没有一个合适的数据结构,就创建一个。
我倾向于使用类,以你为稍后把行为放进来会比较容易,我通常会尽量确保这些新建的数据结构是值对象
2、测试
3、使用【改变函数声明】给原来的函数新增一个参数,类型是新建的数据结构
4、测试
5、调整所有调用者,传入新数据结构的适当实例每修改一处,执行测试
6、用新数据结构中的每项元素,逐一取代参数列表中与之对应参数项,然后删除原来的参数,测试。