<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-從地獄中重生
    主站蜘蛛池模板: 久久久久久亚洲精品不卡| 午夜一级免费视频| 亚洲av激情无码专区在线播放| 边摸边吃奶边做爽免费视频网站 | 亚洲国产精品高清久久久| 免费人成视频在线播放| 日本免费一二区在线电影| 亚洲精品色播一区二区| 四虎成人免费大片在线| 亚洲中文字幕无码mv| 成年女人色毛片免费看| 亚洲日韩精品国产一区二区三区| 成人无码区免费视频观看| 亚洲日韩av无码中文| 四虎永久在线精品视频免费观看| 精品在线免费视频| mm1313亚洲国产精品美女| 一级做a毛片免费视频 | 亚洲AV无码乱码国产麻豆| 欧洲人成在线免费| 亚洲精品视频在线观看免费| 成年人免费的视频| 综合偷自拍亚洲乱中文字幕| 亚洲一区在线免费观看| 免费看又爽又黄禁片视频1000 | 日韩在线观看视频免费| 久久久久亚洲AV成人网| 七色永久性tv网站免费看| 精品亚洲AV无码一区二区三区 | 久久久久久夜精品精品免费啦| 亚洲综合在线成人一区| 成人爽A毛片免费看| 精品在线免费视频| 亚洲国产精品无码成人片久久| ww4545四虎永久免费地址| 亚洲AV无码一区二区三区性色| 亚洲日本中文字幕天堂网| 免费在线看黄的网站| 亚洲精品第一综合99久久| 夜色阁亚洲一区二区三区| 日韩插啊免费视频在线观看|