<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-從地獄中重生
    主站蜘蛛池模板: 日本免费网站在线观看| 成人在线免费观看| 国产精品69白浆在线观看免费| 67194熟妇在线永久免费观看| 亚洲av无码片在线观看| 亚洲区日韩精品中文字幕| 日韩在线视频线视频免费网站| 国产在线播放线91免费| 久久精品免费一区二区| 日本一道一区二区免费看| 亚洲夜夜欢A∨一区二区三区| 亚洲日本va午夜中文字幕一区| 亚洲中文字幕乱码熟女在线| 人人公开免费超级碰碰碰视频| 免费观看91视频| 大学生高清一级毛片免费| 亚洲欧洲精品成人久久奇米网| 亚洲精品视频在线| 亚洲AV香蕉一区区二区三区| 中国一级特黄的片子免费| 福利免费观看午夜体检区| 成人伊人亚洲人综合网站222| 无码乱人伦一区二区亚洲| 亚洲第一综合天堂另类专 | 四虎免费永久在线播放| 亚洲国产精品一区第二页| 亚洲成a人片在线观看精品| 人成电影网在线观看免费| 亚洲一级毛片免费看| 亚洲国产成人久久精品99| 亚洲成人高清在线观看| 一级日本高清视频免费观看| 99国产精品永久免费视频| 国产亚洲精品高清在线| 亚洲欧美中文日韩视频| 久久免费美女视频| 国产91久久久久久久免费| 亚洲国产av高清无码| 亚洲中文字幕乱码一区| 免费观看久久精彩视频 | 国产成人精品免费视频大|