Introduce Foreign Method(引入外加函数)

  1. Data newStart = new Data(previousEnd.getYear(), previousEnd.getMonth(), previousEnd.getDate() + 1);

修改后:

  1. Data newStart = nextDay(previousEnd);
  2. private static Date nextDay(Data arg){
  3. return new Data(arg.getYear(), arg.getMonth(), arg.getDate() + 1);
  4. }

做法

  • 在客户类中建立一个函数,用来提供你需要的功能

    这个函数不应该调用客户类的任何特性。如果它需要一个值,把该值当作参数传给它

  • 以服务类实例作为该函数的第一参数

  • 将该函数注释为:”外加函数(foreign method),应在服务类实现”

    这么一来,如果将来有机会将外加函数搬移到服务类中时,你便可以轻松找出这些外加函数

范例

  1. Data newStart = new Data(previousEnd.getYear(), previousEnd.getMonth(), previousEnd.getDate() + 1);

修改后:

  1. Data newStart = nextDay(previousEnd);
  2. private static Date nextDay(Data arg){
  3. // foreign method, should be on date
  4. return new Data(arg.getYear(), arg.getMonth(), arg.getDate() + 1);
  5. }