ivaneeo's blog

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

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            669 Posts :: 0 Stories :: 64 Comments :: 0 Trackbacks
          Shotgun SurgeryDivergent Change,但恰恰相反。如果每遇到某種變化,你都必須在許多不同的classes內做出許多小修改以響應之,你所面臨的壞味道就是Shotgun Surgery。如果需要修改的代碼散布四處,你不但很難找到它們,也很容易忘記某個重要的修改。

          這種情況下你應該使用Move Method(142)和Move Field(146)把所有需要修改的代碼放進同一個class。如果眼下沒有合適的class可以安置這些代碼,就創造一個。通常你可以運用Inline Class(154)把一系列相關行為放進同一個class。這可能會造成少量Divergent Change,但你可以輕易處理它。

          Divergent Change是指[一個class受多種變化的影響],Shotgun Surgery則是指[一種變化引發多個class相應修改]。這兩種情況下你都會希望整理代碼,取得[外界變化]與[待改類]呈現一對一關系的理想境地。
          posted on 2005-08-18 16:32 ivaneeo 閱讀(606) 評論(0)  編輯  收藏 所屬分類: refactoring-從地獄中重生
          主站蜘蛛池模板: 鹤壁市| 茶陵县| 石泉县| 金寨县| 凤翔县| 隆子县| 藁城市| 揭西县| 南华县| 西吉县| 航空| 略阳县| 澎湖县| 边坝县| 正定县| 安塞县| 衡阳市| 江都市| 永寿县| 潜江市| 利辛县| 屏东市| 陆川县| 新绛县| 湘乡市| 海城市| 盐源县| 南皮县| 罗田县| 安多县| 青冈县| 五莲县| 湟中县| 交口县| 塔河县| 磐石市| 西丰县| 如皋市| 三门县| 涡阳县| 锡林郭勒盟|