<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-從地獄中重生
    主站蜘蛛池模板: 亚洲午夜一区二区电影院| 国产性爱在线观看亚洲黄色一级片 | 亚洲一本综合久久| 中文字幕在线免费看| 亚洲国产av无码精品| 亚洲AV无码一区二区三区鸳鸯影院| 久久久久久久久免费看无码| 亚洲a∨无码男人的天堂| 成人黄色免费网址| 亚洲AV成人一区二区三区在线看| 国产国产人免费视频成69堂| 亚洲国产av高清无码| 成年人免费网站在线观看| 亚洲熟妇无码AV不卡在线播放 | 国产午夜影视大全免费观看 | 今天免费中文字幕视频| 亚洲AV人人澡人人爽人人夜夜| 两个人日本WWW免费版| 亚洲第一福利视频| 国产日本一线在线观看免费| 亚洲精品无码久久| 亚洲国产综合久久天堂| 丝袜足液精子免费视频| 亚洲欧洲中文日产| 日韩视频免费在线| 中国性猛交xxxxx免费看| 亚洲成人在线电影| 好男人视频在线观看免费看片| 女bbbbxxxx另类亚洲| 亚洲女久久久噜噜噜熟女| 99热免费在线观看| 亚洲av无码一区二区三区人妖| www.91亚洲| 84pao国产成视频免费播放| 亚洲午夜无码久久久久小说 | 国产黄在线播放免费观看| 久久夜色精品国产亚洲AV动态图| 妻子5免费完整高清电视| 国产综合激情在线亚洲第一页| 亚洲国产成人片在线观看无码| 全免费毛片在线播放|