ivaneeo's blog

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

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            669 Posts :: 0 Stories :: 64 Comments :: 0 Trackbacks
          首先,我要建立一個新的MfDateSub class來表示[日期],并使其成為Date的subclass:
              class MfDateSub extends Date
          然后,我需要處理Date和我的extension class之間的不同處。MfDateSub構造函數需要委托(delegating)給Date構造函數:
              public MfDateSub(String dateString) {
                 super(dateString);
              }
          現在,我需要加入一個轉型構造函數,其參數是一個隸屬原類的對象:
              public MfDateSub(Date arg){
                 super(arg.getTime());
              }
          現在,我可以在extension class中添加新特性,并使用Move Method(142)將所有外加函數(foreign method)搬移到extension 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:14 ivaneeo 閱讀(199) 評論(0)  編輯  收藏 所屬分類: refactoring-從地獄中重生
          主站蜘蛛池模板: 和林格尔县| 宜宾县| 南充市| 临沂市| 高青县| 泰宁县| 寿光市| 景东| 东山县| 阿鲁科尔沁旗| 白水县| 商都县| 中方县| 深水埗区| 开封市| 嘉鱼县| 开阳县| 鹤庆县| 普兰县| 乳源| 丹东市| 平南县| 宜都市| 新郑市| 双辽市| 张北县| 大荔县| 青阳县| 屏边| 高要市| 醴陵市| 昌平区| 巴塘县| 定陶县| 苗栗县| 敦化市| 揭东县| 广水市| 巴塘县| 仁布县| 东丽区|