ivaneeo's blog

自由的力量,自由的生活。

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  669 Posts :: 0 Stories :: 64 Comments :: 0 Trackbacks
首先声明一个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);
       }
posted on 2005-08-31 15:27 ivaneeo 阅读(110) 评论(0)  编辑  收藏 所属分类: refactoring-从地狱中重生

只有注册用户登录后才能发表评论。


网站导航: