重构二--在对象之间搬移特性(Introduce Local Extension)(4)--范例(2)--使用Wrapper(外覆类)

重构二--在对象之间搬移特性(Introduce Local Extension)(4)--范例(2)--使用Wrapper(外覆类)
首先声明一个wrapping class:
    class MfDateWrap {
       private Date _original;
    }
使用wrapping方案时,我对构造函数的设定与先前有所不同。现在的构造函数将只是执行一个单纯的委托动作(delegation):
    public MfDateWrap(String dateString) {
       _original = new Date(dateString);
    }
而转型构造函数则只是对其 instance变量赋值而已:
    public int getYear() {
       return _original.getYear();
    }
    public boolean equals(MfDateWrap arg) {
       return (toDate().equals(arg.toDate());
    }
完成这项工作之后,我就可以后使用 Move Method(142)将日期相关行为搬移到新class中。于是以下代码:
    client class...
       private static Date nextDay(Date arg) {
          return new Date(arg.getYear(), arg.getMonth(), arg.getDate() + 1);
       }
经过搬移之后,就成了:
    class MfDate...
       Date nextDay() {
          return new Date(getYear(), getMonth(), getDate() + 1);
       }

你可能感兴趣的:(重构二--在对象之间搬移特性(Introduce Local Extension)(4)--范例(2)--使用Wrapper(外覆类))