<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    ivaneeo's blog

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

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      669 Posts :: 0 Stories :: 64 Comments :: 0 Trackbacks
    無數次經驗里,我們看到某個函數為了計算某值,從另一個對象那兒調用幾乎半打的取值函數(getting method)。療法顯而易見:把這個函數移至另一個地點。你應該使用Move Method(142)把它移到它該去的地方。有時侯函數中只有一部分受這種依戀之苦,這時候你應該使用Extract Method(110)把這一部分提煉到獨立函數中,再使用Move Method(142)帶它去它的夢中家園。

    當然,并非所有情況都這么簡單。一個函數往往會用上數個classes特性,那么它究竟該被置于何處呢?我們的原則是:判斷哪個class擁有最多[被此函數使用]的數據,然后就把這個函數和那些數據擺在一起。如果先以Extract Method(110)將這個函數分解為數個較小函數并分別置放于不同地點,上述步驟也就比較容易完成了。

    有數個復雜精巧的模式(patterns)破壞了這個規則。說起這個話題,[四巨頭][Gang of Four]的StrategyVisitor立刻跳入我的腦海,Kent Beck的Self Delegation[Beck]也在此列。使用這些模式是為了對抗壞味道Divergent Change。最根本的原則是:將總是一起變化的東西放在一塊兒。[數據]和[引用這些數據]的行為總是一起變化的,但也有例外。如果例外出現,我們就搬移那些行為,保持[變化只在一地發生]。StrategyVisitor使你得以輕松修改函數行為,因為它們將少量需被覆寫(overridden)的行為隔離開來-當然也付出了[多一層間接性]的代價。
    posted on 2005-08-18 17:09 ivaneeo 閱讀(2283) 評論(0)  編輯  收藏 所屬分類: refactoring-從地獄中重生
    主站蜘蛛池模板: 国产精品视频免费观看| 亚洲午夜精品一区二区| 久久久久国产精品免费免费搜索| caoporn国产精品免费| 亚洲av无码偷拍在线观看| 亚洲欧洲另类春色校园小说| 久久精品国产亚洲7777| 国产大片线上免费看| 丁香花在线观看免费观看| 16女性下面无遮挡免费| 国产99视频精品免费专区| 野花视频在线官网免费1| 国产成人精品日本亚洲直接| 久久久久亚洲AV成人片| 日本亚洲欧洲免费天堂午夜看片女人员| 亚洲AV伊人久久青青草原| 最好免费观看韩国+日本| 成全视频免费高清| 男女免费观看在线爽爽爽视频| 18女人水真多免费高清毛片| 久久国产精品萌白酱免费| 在线观看片免费人成视频无码| 国产无限免费观看黄网站| 欧洲乱码伦视频免费国产| 美女免费视频一区二区| 色一情一乱一伦一视频免费看| 久久精品亚洲日本波多野结衣| 亚洲精品日韩一区二区小说| 亚洲精品无码久久久久APP | 色老板亚洲视频免在线观| 亚洲综合激情另类小说区| 亚洲欧洲综合在线| 亚洲欧洲自拍拍偷综合| 亚洲一区二区三区在线| 亚洲国产av无码精品| 亚洲最大的成人网| 18级成人毛片免费观看| 亚洲狠狠ady亚洲精品大秀| 亚洲高清免费在线观看| 亚洲高清中文字幕免费| 成人黄动漫画免费网站视频 |