ivaneeo's blog

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

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            669 Posts :: 0 Stories :: 64 Comments :: 0 Trackbacks

          常用鏈接

          留言簿(34)

          我參與的團隊

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          如果有很多函數已經使用了_interestRate field,我應該先運用Self Encapsulate Field(171):
          class Account...
              private AccountType _type;
              private double _interestRate;
              double interestForAmount_days(double amount, int days) {
                 return getInterestRate() * amount * days / 365;
              }
              private void setInterestRate(double arg) {

                 _interestRate = arg;
              }
              private double getInterestRate() {
                 return _interestRate;
              }

          這樣,在搬移field之后,我就只需要修改訪問函數就行了:

              double interestForAmount_days(double amount, int days) {
                 return getInterestRate() * amount * days / 365;
              }
              private void setInterestRate(double arg) {

                 _type.setInterestRate(arg);
              }
              private double getInterestRate() {
                 return _type.getInterestRate();
              }

          如果以后有必要,我可以修改訪問函數(accessors)的用戶,讓它們使用新對象。Self Encapsulate Field(171)使我得以保持小步前進。如果我需要對class做許多處理,保持小步前進是有幫助的。特別值得一提的是:首先使用
          Self Encapsulate Field(171)使我得以更輕松使用Move Method(142)將函數搬移到target class中。如果待移函數引用了field的訪問函數(accessors),那么那些引用點是無須修改的。

          posted on 2005-08-30 14:59 ivaneeo 閱讀(131) 評論(0)  編輯  收藏 所屬分類: refactoring-從地獄中重生
          主站蜘蛛池模板: 荣成市| 白城市| 五常市| 平谷区| 获嘉县| 江阴市| 大同市| 阳谷县| 宣武区| 怀宁县| 蓬安县| 桐城市| 丹棱县| 扎鲁特旗| 三门县| 申扎县| 乐东| 津南区| 宝山区| 淮北市| 三河市| 北宁市| 阿拉善盟| 顺义区| 鄯善县| 息烽县| 旺苍县| 吉安县| 九台市| 望谟县| 长岛县| 扎鲁特旗| 德格县| 定州市| 鹤山市| 陕西省| 嵊泗县| 玉林市| 海晏县| 龙胜| 黄陵县|