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-從地獄中重生
          主站蜘蛛池模板: 贡山| 深泽县| 怀宁县| 澳门| 清水县| 同德县| 宜宾县| 堆龙德庆县| 印江| 深泽县| 张家界市| 托克逊县| 兴隆县| 汪清县| 江都市| 扬州市| 安乡县| 莒南县| 卢湾区| 观塘区| 米易县| 哈尔滨市| 舟曲县| 濮阳县| 芮城县| 兴义市| 安泽县| 马关县| 临湘市| 健康| 通许县| 神木县| 五原县| 嘉鱼县| 壤塘县| 清镇市| 柏乡县| 兰考县| 宁阳县| 宜阳县| 济源市|