Introduce Foreign Method(引入外加函数)
Data newStart = new Data(previousEnd.getYear(), previousEnd.getMonth(), previousEnd.getDate() + 1);
修改后:
Data newStart = nextDay(previousEnd);
private static Date nextDay(Data arg){
return new Data(arg.getYear(), arg.getMonth(), arg.getDate() + 1);
}
做法
- 在客户类中建立一个函数,用来提供你需要的功能
这个函数不应该调用客户类的任何特性。如果它需要一个值,把该值当作参数传给它
以服务类实例作为该函数的第一参数
将该函数注释为:”外加函数(foreign method),应在服务类实现”
这么一来,如果将来有机会将外加函数搬移到服务类中时,你便可以轻松找出这些外加函数
范例
Data newStart = new Data(previousEnd.getYear(), previousEnd.getMonth(), previousEnd.getDate() + 1);
修改后:
Data newStart = nextDay(previousEnd);
private static Date nextDay(Data arg){
// foreign method, should be on date
return new Data(arg.getYear(), arg.getMonth(), arg.getDate() + 1);
}