ivaneeo's blog

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

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            669 Posts :: 0 Stories :: 64 Comments :: 0 Trackbacks
          你常常可以在很多地方看到相同的三或四筆數據項:兩個classes內的相同值域(field)、許多函數簽名式(signature)中的相同參數。這 些[總是綁在一起出現的數據]真應該放進屬于它們自己的對象中。首先請找出這些數據的值域形式(field)出現點,運用Extract Class(149)將它們提煉到一個獨立對象中。然后將注意力轉移到函數簽名式(signature)上頭,運用Introduce Parameter Object(295)或Preserve Whole Object(288)為它減肥。這么做的直接好處是可以將很多參數列縮短,簡化函數調用動作。是的,不必因為Data Clumps只用上新對象的一部分值或而在意,只要你以新對象取代兩個(或更多)值域,你就值回票價了。

          一個好的評斷辦法是:刪掉眾多數據中的一筆。其他數據有沒有因而失去意義?如果它們不再有意義,這就是個明確信號:你應該為它們產生一個新對象。

          縮短值域個數和參數個數,當然可以去除一些壞味道,但更重要的是:一旦擁有新對象,你就有機會讓程序散發出一種芳香。得到新對象后,你就可以著手尋找Feature Envy,這可以幫你指出[可移到新class]中的種種程序行為。不必太久,所有classes都將在它們的小小社會中充分發揮自己的生產力。
          posted on 2005-08-19 10:37 ivaneeo 閱讀(1058) 評論(1)  編輯  收藏 所屬分類: refactoring-從地獄中重生

          Feedback

          # re: 代碼的壞味道(8)-Data Clumps(數據泥團) 2008-12-01 11:41 lujiawu12
          這就是個明確信號:你應該為它們產生一個新對象

          if they don't ,it's a sure sign that you have an object that's dying to be born.

          dying是垂死的意思,以我的理解應是不該產生新對象  回復  更多評論
            

          主站蜘蛛池模板: 昌邑市| 平原县| 垦利县| 广安市| 筠连县| 右玉县| 南澳县| 巨鹿县| 东兰县| 雷波县| 四会市| 潜江市| 华阴市| 阿勒泰市| 安泽县| 六安市| 昌黎县| 桦南县| 沁源县| 宜兰县| 东兰县| 太仆寺旗| 麦盖提县| 沧州市| 漾濞| 那坡县| 阜南县| 绵阳市| 综艺| 新化县| 页游| 诸城市| 万盛区| 新疆| 广州市| 江华| 儋州市| 灌阳县| 玛多县| 灯塔市| 明溪县|