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 閱讀(169) 評論(0)  編輯  收藏 所屬分類: refactoring-從地獄中重生
          主站蜘蛛池模板: 巧家县| 阿荣旗| 香格里拉县| 左贡县| 迁安市| 酒泉市| 封开县| 绥芬河市| 潼关县| 贺州市| 常宁市| 大庆市| 济宁市| 南木林县| 道真| 肇东市| 石城县| 确山县| 济宁市| 蓬莱市| 甘南县| 上思县| 汶川县| 长沙县| 华安县| 辽宁省| 怀来县| 宜春市| 易门县| 黎川县| 永仁县| 永新县| 新化县| 馆陶县| 兴仁县| 读书| 木里| 锡林浩特市| 松潘县| 桐梓县| 锡林郭勒盟|