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

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

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

    ivaneeo's blog

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

      BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      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);
    }

    這段代碼還算簡單,不過我可以讓它變得更容易理解.首先我發(fā)現(xiàn),底價(base price)等于數(shù)量(quantity)乘以單價(item price).于是我把這一部分計算的結(jié)果放進一個臨時變量中:
    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);
    }

    稍后也用上了[數(shù)量乘以單價]運算結(jié)果,所以我同樣將它替換為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);
    }


    然后,我將批發(fā)折扣(quantity discount)的計算提煉出來,將結(jié)果賦予臨時變量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)計算提煉出來,將運算結(jié)果賦予臨時變量shipping.同時我還可以刪掉代碼中的注釋,因為現(xiàn)在代碼已經(jīng)可以完美表達自己的意義了:
    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 閱讀(142) 評論(0)  編輯  收藏 所屬分類: refactoring-從地獄中重生
    主站蜘蛛池模板: 精品女同一区二区三区免费站| 狼色精品人妻在线视频免费| 热99RE久久精品这里都是精品免费| 午夜亚洲av永久无码精品| 亚洲AV无码专区在线电影成人| 在线免费一区二区| 亚洲色大成网站www永久男同 | 亚洲精品动漫免费二区| 处破痛哭A√18成年片免费| 亚洲综合色丁香婷婷六月图片| 好男人视频在线观看免费看片| 亚洲国产精品日韩av不卡在线| 免费看少妇作爱视频| 色www免费视频| 亚洲午夜无码AV毛片久久| 日韩精品无码免费专区网站| 久久久久久亚洲精品| 4虎永免费最新永久免费地址| 国产精品亚洲综合久久| 全部免费a级毛片| 国产在线播放线91免费| 亚洲精品自在线拍| 女人18毛片a级毛片免费| 一级毛片免费不卡直观看| 国产国拍亚洲精品mv在线观看| 在线看无码的免费网站| 亚洲自偷自偷在线成人网站传媒 | 日韩色视频一区二区三区亚洲 | 国产亚洲大尺度无码无码专线| 性xxxxx大片免费视频| 亚洲一卡2卡三卡4卡无卡下载 | 亚洲精品免费观看| 女人与禽交视频免费看| 久久久久免费视频| 日本亚洲精品色婷婷在线影院 | 69堂人成无码免费视频果冻传媒| 亚洲国产精品成人午夜在线观看| 亚洲综合av永久无码精品一区二区 | www亚洲一级视频com| 日本人成在线视频免费播放| 亚洲无码一区二区三区|