<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    ivaneeo's blog

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

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      669 Posts :: 0 Stories :: 64 Comments :: 0 Trackbacks
    提取[常客積點計算]代碼
    首先我們需要針對[常客積點計算]這部分代碼(以下粗體部分)運用Extract Method(110)重構準則:
    public String statement() {
        double totalAmount = 0;
        int frequentRenterPoints = 0;
        Enumeration rentals = _rentals.elements();
        String result = "Rental Record for * " + getName() + "\n";
        while(rentals.hasMoreElements()) {
           Rental each = (Rental)rentals.nextElement();    //取得一筆租借記錄

           //   add frequent renter points(累加常客積點)
              frequentRenterPoints ++;
              if((each.getMovie().getPriceCode() == Movie.NEW_RELEASE) &&
                 each.getDaysRented() > 1)
                 frequentRenterPoints ++;

              result += "\t" + each.getMovie().getTitle() + "\t" +
                 String.valueOf(each.getCharge()) + "\n";
              totalAmount += each.getCharge();
        }
    //   add footer lines(結尾打印)
        result += "Amount owed is " + String.valueOf(totalAmount) + " \n";
        result += "You earned " + String.valueOf(frequentRenterPoints) +
           "frequent renter points";
        return result;
    }

    再一次我又要尋找局部變量。這里再一次用到了each,而它可以被當作參數傳入新函數中。另一個臨時變量是frequentRenterPoints。本 例中的它在被使用之前已經先有初值,但提煉出來的函數并沒有讀取改值,所以我們不需要將它當作參數傳進去,只需對它執行[付添賦值操作](appending assignment,operator+=)就行了。

    public String statement() {
        double totalAmount = 0;
        int frequentRenterPoints = 0;
        Enumeration rentals = _rentals.elements();
        String result = "Rental Record for * " + getName() + "\n";
        while(rentals.hasMoreElements()) {
           Rental each = (Rental)rentals.nextElement();    //取得一筆租借記錄

         frequentRenterPointers += each.getFrequentRenterPoints();

              result += "\t" + each.getMovie().getTitle() + "\t" +
                 String.valueOf(each.getCharge()) + "\n";
              totalAmount += each.getCharge();
        }
    //   add footer lines(結尾打印)
        result += "Amount owed is " + String.valueOf(totalAmount) + " \n";
        result += "You earned " + String.valueOf(frequentRenterPoints) +
           "frequent renter points";
        return result;
    }

    class Rental...
        int getFrequentRenterPoints() {
           if((getMovie().getPriceCode() == Movie.NEW_RELEASE)
              && getDaysRented() > 1)
              return 2;
           else
              return 1;
        }
    posted on 2005-08-15 13:29 ivaneeo 閱讀(277) 評論(0)  編輯  收藏 所屬分類: refactoring-從地獄中重生
    主站蜘蛛池模板: aa午夜免费剧场| 亚洲一级片免费看| 久久久久av无码免费网| 亚洲人成无码网站| 国内精品一级毛片免费看| 亚洲精品无码乱码成人| 国产日韩一区二区三免费高清| 国产亚洲成归v人片在线观看| 一出一进一爽一粗一大视频免费的| 亚洲av日韩av欧v在线天堂| 免费人成大片在线观看播放| 免费一级毛片免费播放| 免费国产高清毛不卡片基地| 亚洲毛片av日韩av无码| 免费一区二区无码东京热| 午夜影视日本亚洲欧洲精品一区| 69国产精品视频免费| 国产精品久久亚洲不卡动漫| 国产精品深夜福利免费观看 | 国产成人涩涩涩视频在线观看免费| 亚洲中文字幕久久精品无码A| 女人18一级毛片免费观看| 黄人成a动漫片免费网站| 综合亚洲伊人午夜网 | 在线观看黄片免费入口不卡| 亚洲AV无码精品无码麻豆| 日本片免费观看一区二区| 亚洲熟妇久久精品| 中文字幕亚洲日本岛国片| 污视频在线观看免费| 日本亚洲免费无线码 | 亚洲激情在线观看| 午夜网站免费版在线观看| 成人a毛片视频免费看| 亚洲一区综合在线播放| 在线精品免费视频| 在线观看免费视频网站色| 亚洲黄色激情视频| 色久悠悠婷婷综合在线亚洲| 精品女同一区二区三区免费站 | 国产精品美女久久久免费|