ivaneeo's blog

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

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

          常用鏈接

          留言簿(34)

          我參與的團隊

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          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-從地獄中重生
          主站蜘蛛池模板: 玉溪市| 龙川县| 喀喇沁旗| 屏东县| 铜梁县| 高邮市| 澎湖县| 蒙阴县| 张家川| 孙吴县| 孟州市| 郧西县| 柳州市| 宜章县| 洛川县| 台山市| 长葛市| 南昌县| 洪洞县| 拜泉县| 前郭尔| 泽库县| 潮安县| 北安市| 峨山| 儋州市| 庄河市| 渭南市| 深圳市| 安康市| 淮滨县| 舟曲县| 赣榆县| 通海县| 军事| 逊克县| 济源市| 改则县| 花莲县| 桦川县| 四平市|