<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)
    我們從一個(gè)簡單計(jì)算開始:
    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),底價(jià)(base price)等于數(shù)量(quantity)乘以單價(jià)(item price).于是我把這一部分計(jì)算的結(jié)果放進(jìn)一個(gè)臨時(shí)變量中:
    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à)]運(yùn)算結(jié)果,所以我同樣將它替換為basePrice臨時(shí)變量:
    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)的計(jì)算提煉出來,將結(jié)果賦予臨時(shí)變量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);
    }

    最后,我再把運(yùn)費(fèi)(shipping)計(jì)算提煉出來,將運(yùn)算結(jié)果賦予臨時(shí)變量shipping.同時(shí)我還可以刪掉代碼中的注釋,因?yàn)楝F(xiàn)在代碼已經(jīng)可以完美表達(dá)自己的意義了:
    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-從地獄中重生
    主站蜘蛛池模板: 亚洲精品综合一二三区在线| 亚洲精品无码av天堂| 亚洲天天在线日亚洲洲精| 精品视频在线免费观看| 国产精品国产亚洲精品看不卡| 中文毛片无遮挡高清免费| 亚洲精品制服丝袜四区| 国产自国产自愉自愉免费24区| 亚洲国产精品国自产拍AV| 久久国产精品成人免费| 亚洲尹人香蕉网在线视颅 | 国产成人亚洲精品电影| 免费人成视频在线观看视频| 免费福利在线观看| 久久久久亚洲精品无码网址| a级毛片免费完整视频| 亚洲综合无码一区二区| 国语成本人片免费av无码| 色噜噜噜噜亚洲第一| 2048亚洲精品国产| 久久精品国产大片免费观看| 亚洲黄色免费电影| 免费看又爽又黄禁片视频1000| 猫咪www免费人成网站| 久久亚洲精品视频| 国产成在线观看免费视频| 国产产在线精品亚洲AAVV| 久久亚洲国产精品五月天婷| 69视频在线是免费观看| 国产亚洲中文日本不卡二区| 亚洲女人被黑人巨大进入| 99国产精品视频免费观看| 亚洲日韩精品A∨片无码加勒比| 狠狠色婷婷狠狠狠亚洲综合| 日本免费一区二区三区四区五六区| 亚洲精品美女久久久久9999| 日本xxwwxxww在线视频免费| 嫩草在线视频www免费看| 亚洲日本VA午夜在线电影| 亚洲午夜日韩高清一区| 免费视频爱爱太爽了|