ivaneeo's blog

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

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            669 Posts :: 0 Stories :: 64 Comments :: 0 Trackbacks
          首先聲明一個(gè)wrapping class:
              class MfDateWrap {
                 private Date _original;
              }
          使用wrapping方案時(shí),我對構(gòu)造函數(shù)的設(shè)定與先前有所不同。現(xiàn)在的構(gòu)造函數(shù)將只是執(zhí)行一個(gè)單純的委托動(dòng)作(delegation):
              public MfDateWrap(String dateString) {
                 _original = new Date(dateString);
              }
          而轉(zhuǎn)型構(gòu)造函數(shù)則只是對其instance變量賦值而已:
              public int getYear() {
                 return _original.getYear();
              }
              public boolean equals(MfDateWrap arg) {
                 return (toDate().equals(arg.toDate());
              }
          完成這項(xiàng)工作之后,我就可以后使用Move Method(142)將日期相關(guān)行為搬移到新class中。于是以下代碼:
              client class...
                 private static Date nextDay(Date arg) {
                    return new Date(arg.getYear(), arg.getMonth(), arg.getDate() + 1);
                 }
          經(jīng)過搬移之后,就成了:
              class MfDate...
                 Date nextDay() {
                    return new Date(getYear(), getMonth(), getDate() + 1);
                 }
          posted on 2005-08-31 15:27 ivaneeo 閱讀(170) 評論(0)  編輯  收藏 所屬分類: refactoring-從地獄中重生
          主站蜘蛛池模板: 巴林右旗| 武汉市| 岱山县| 新竹市| 和林格尔县| 礼泉县| 利辛县| 营山县| 安多县| 土默特左旗| 筠连县| 太保市| 容城县| 苍南县| 金坛市| 晋城| 铁岭县| 射阳县| 精河县| 仁怀市| 郁南县| 嘉鱼县| 慈利县| 定远县| 察哈| 博罗县| 桂阳县| 香河县| 于田县| 阳山县| 保定市| 溆浦县| 曲靖市| 白城市| 隆子县| 大石桥市| 潜江市| 南丰县| 苍山县| 乐至县| 米易县|