<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-從地獄中重生
    主站蜘蛛池模板: 成人永久免费福利视频网站| 成人免费无码大片a毛片| 亚洲?v女人的天堂在线观看| 亚洲国产综合AV在线观看| 成人午夜视频免费| 亚洲精品永久在线观看| 国产在线观看免费完整版中文版| 亚洲AV无码专区亚洲AV桃| 国产又粗又猛又爽又黄的免费视频| 亚洲AV无码成人网站在线观看 | 久久这里只精品99re免费| 亚洲∧v久久久无码精品 | 免费福利在线播放| 国产精品亚洲专区在线观看| 三年片在线观看免费观看高清电影| 亚洲一级片在线播放| 啦啦啦在线免费视频| 免费毛片毛片网址| 国产亚洲精品免费视频播放| 免费人成黄页在线观看日本| 亚洲avav天堂av在线不卡| 成年人在线免费看视频| 老妇激情毛片免费| 久久久久亚洲av无码尤物| 亚洲高清中文字幕免费| 国产AV无码专区亚洲AV琪琪| 亚洲精品高清无码视频| 在线视频精品免费| 羞羞网站在线免费观看| 亚洲国产a∨无码中文777| 福利免费观看午夜体检区| 曰批全过程免费视频观看免费软件| 亚洲精品无码国产| 一二三四视频在线观看中文版免费| 婷婷亚洲综合五月天小说在线| 亚洲最大AV网站在线观看| 国产精品免费精品自在线观看| 国产精品亚洲一区二区三区在线观看| 亚洲中文字幕久久精品无码喷水| 成人免费的性色视频| 色天使亚洲综合一区二区 |