ivaneeo's blog

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

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            669 Posts :: 0 Stories :: 64 Comments :: 0 Trackbacks

          常用鏈接

          留言簿(34)

          我參與的團隊

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          現(xiàn)在我運用同樣手法處理getFrequentRenterPoints()。重構前的樣子如下:
          class Movie...
              int getFrequentRenterPoints(int daysRented) {
                 if((getPriceCode() == Movie.NEW_RELEASE) && daysRented > 1)
                    return 2;
                 else
                    return 1;
              }

          首先我把這個函數(shù)移到Price class里頭:
          class Movie...
              int getFrequentRenterPoints(int daysRented) {
                 return _price.getFrequentPoints(daysRented);
              }
          class Price...
              int getFrequentRenterPoints(int daysRented) {
                 if((getPriceCode() == Movie.NEW_RELEASE) && daysRented > 1)
                    return 2;
                 else
                    return 1;
              }

          但是這一次我不把superclass函數(shù)聲明為abstract。我只是為[新片類型]產(chǎn)生一個覆寫函數(shù)(override method),并在superclass內(nèi)留下一個已定義的函數(shù),使它成為一種缺省行為。

          class NewReleasePrice
              int getFrequentRenterPoints(int daysRented) {
                 return (daysRented > 1) ? 2 : 1;
              }

          class Price...
              int getFrequentRenterPoints(int daysRented) {
                 return 1;
              }
          posted on 2005-08-16 15:50 ivaneeo 閱讀(159) 評論(0)  編輯  收藏 所屬分類: refactoring-從地獄中重生
          主站蜘蛛池模板: 商城县| 西安市| 兖州市| 昭苏县| 札达县| 乌鲁木齐县| 抚州市| 裕民县| 渭南市| 胶南市| 富平县| 包头市| 兴国县| 响水县| 襄城县| 平顶山市| 沾益县| 龙陵县| 昭觉县| 南华县| 阿坝| 湘西| 富平县| 顺昌县| 东辽县| 花垣县| 乌拉特中旗| 宁波市| 偏关县| 腾冲县| 宁德市| 蒲城县| 高阳县| 尉氏县| 阜平县| 南京市| 四会市| 昆明市| 景谷| 锡林郭勒盟| 湘西|