<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
    范例(Examples)
    我們從一個簡單計算開始:
    double price() {
       //price is base price - quantity discount + shipping
       return _quantity * _itemPrice -
          Math.max(0, _quantity - 500) * _itemPrice * 0.05 +
          Math.min(_quantity * _itemPrice * 0.1, 100.0);
    }

    這段代碼還算簡單,不過我可以讓它變得更容易理解.首先我發現,底價(base price)等于數量(quantity)乘以單價(item price).于是我把這一部分計算的結果放進一個臨時變量中:
    double price() {
       //price is base price - quantity discount + shipping
       final double basePrice = _quantity * _itemPrice;
       return basePrice -
          Math.max(0, _quantity - 500) * _itemPrice * 0.05 +
          Math.min(_quantity * _itemPrice * 0.1, 100.0);
    }

    稍后也用上了[數量乘以單價]運算結果,所以我同樣將它替換為basePrice臨時變量:
    double price() {
       //price is base price - quantity discount + shipping
       final double basePrice = _quantity * _itemPrice;
       return basePrice -
          Math.max(0, _quantity - 500) * _itemPrice * 0.05 +
          Math.min(basePrice * 0.1, 100.0);
    }


    然后,我將批發折扣(quantity discount)的計算提煉出來,將結果賦予臨時變量quantityDiscount:
    double price() {
       //price is base price - quantity discount + shipping
       final double basePrice = _quantity * _itemPrice;
       final double quantityDiscount = Math.max(0, _quantity - 500) * 
                                                          _itemPrice * 0.05;

       return basePrice - quantityDiscount  +
          Math.min(basePrice * 0.1, 100.0);
    }

    最后,我再把運費(shipping)計算提煉出來,將運算結果賦予臨時變量shipping.同時我還可以刪掉代碼中的注釋,因為現在代碼已經可以完美表達自己的意義了:
    double price() {
       //price is base price - quantity discount + shipping
       final double basePrice = _quantity * _itemPrice;
       final double quantityDiscount = Math.max(0, _quantity - 500) * 
                                                          _itemPrice * 0.05;
       final double shipping = Math.min(basePrice * 0.1, 100.0);
       return basePrice - quantityDiscount  + shipping;
    }

    posted on 2005-08-25 16:46 ivaneeo 閱讀(146) 評論(0)  編輯  收藏 所屬分類: refactoring-從地獄中重生
    主站蜘蛛池模板: 免费人成在线观看播放a| 激情亚洲一区国产精品| 俄罗斯极品美女毛片免费播放| 精品熟女少妇AV免费观看| 青青青国产免费一夜七次郎 | 国产精品免费看久久久香蕉| jizz日本免费| 亚洲Av无码乱码在线znlu| 亚洲女同成av人片在线观看| 亚洲毛片免费视频| 亚洲精品无码久久久久牙蜜区| 成人a毛片免费视频观看| 99在线观看精品免费99| 欧美a级在线现免费观看| 亚洲第一成人在线| 三年片在线观看免费| a毛片基地免费全部视频| 日韩精品亚洲aⅴ在线影院| 亚洲一级毛片视频| 中文字幕无码免费久久99| 亚洲精品无码中文久久字幕| 国产一级理论免费版| 亚洲一区二区影视| 97人伦色伦成人免费视频| 国产精品亚洲一区二区无码| 久久青草91免费观看| 免费一级特黄特色大片在线| 九九免费观看全部免费视频| 在线观看免费宅男视频| 亚洲第一页在线播放| 成人免费在线观看网站| 亚洲最大黄色网站| 你懂的网址免费国产| 日本媚薬痉挛在线观看免费| 亚洲精品在线免费观看视频| 午夜精品在线免费观看| 韩日电影在线播放免费版| 日本久久久久亚洲中字幕| 国产黄在线播放免费观看| 亚洲黄色三级网站| 国产偷伦视频免费观看|