ivaneeo's blog

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

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            669 Posts :: 0 Stories :: 64 Comments :: 0 Trackbacks
          很明顯看出來,htmlStatement()和statement()是不同的。現在,我應該脫下[重構]的帽子,戴上[添加功能]的帽子,戴上[添加功能]的帽子。我可以像下面這樣編寫htmlStatement(),并添加相應測試:

          public String htmlStatement() {
              Enumeration rentals = _rentals.elements();
              String result = "<H1>Rental Record for <EM> " + getName() + "</EM></H1><P>\n";
              while(rentals.hasMoreElements()) {
                 Rental each = (Rental)rentals.nextElement();    //取得一筆租借記錄

                    result += each.getMovie().getTitle() + ":" +
                       String.valueOf(each.getCharge()) + "<BR>\n";
              }
          //   add footer lines(結尾打印)
              result += "<P>You owe <EM>" + String.valueOf(getTotalCharge()) + "</EM><P> \n";
              result += "On this rental you earned <EM>" + String.valueOf(getTotalfrequentRenterPoints()) +
                 "</EM>frequent renter points<P>";
              return result;
          }

          通過計算邏輯的提煉,我可以完成一個htmlStatement(),并復用(reuse)原本statement()內的所有計算。我不必剪剪貼貼,所以如果計算規則發生改變,我只需在程序中做一處修改。
          posted on 2005-08-15 14:29 ivaneeo 閱讀(167) 評論(0)  編輯  收藏 所屬分類: refactoring-從地獄中重生
          主站蜘蛛池模板: 绥阳县| 宜黄县| 朝阳区| 交城县| 醴陵市| 南康市| 中西区| 乐清市| 灵宝市| 冷水江市| 千阳县| 洮南市| 大庆市| 岳阳县| 甘洛县| 黄平县| 古蔺县| 剑川县| 屯昌县| 翁源县| 瑞昌市| 岢岚县| 石泉县| 随州市| 京山县| 乌海市| 永平县| 含山县| 洛浦县| 湖北省| 贡山| 横峰县| 商洛市| 汤原县| 威远县| 鄂温| 林西县| 滕州市| 嵩明县| 马龙县| 昆明市|