<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 閱讀(2291) 評論(0)  編輯  收藏 所屬分類: refactoring-從地獄中重生
    主站蜘蛛池模板: 亚洲精品国产手机| 亚洲色四在线视频观看| 最新亚洲春色Av无码专区| 久久国产色AV免费观看| 亚洲AV成人精品网站在线播放| 91视频精品全国免费观看| 久久精品亚洲男人的天堂| 一级做a爰片久久免费| 亚洲精品国产福利一二区| 国产黄在线播放免费观看| 亚洲中文字幕无码久久2017| 中文字幕无码毛片免费看| 亚洲国产精品乱码一区二区| 久艹视频在线免费观看| 亚洲国产精品久久| 免费H网站在线观看的| 亚洲三级高清免费| 国产午夜免费秋霞影院| 午夜成人无码福利免费视频| 亚洲人成电影网站国产精品 | 亚洲一区AV无码少妇电影| 妞干网免费观看视频| 高潮内射免费看片| 亚洲人成精品久久久久| 久久ww精品w免费人成| 亚洲AV男人的天堂在线观看| 国产小视频在线观看免费| 国产免费内射又粗又爽密桃视频| 亚洲国产精品一区第二页 | 18禁男女爽爽爽午夜网站免费| 亚洲国产精品人久久电影| 日韩激情无码免费毛片| 中国国产高清免费av片| 特级毛片全部免费播放| 亚洲女久久久噜噜噜熟女| 1000部拍拍拍18勿入免费视频下载| 亚洲中文字幕无码亚洲成A人片| 亚洲国产成人乱码精品女人久久久不卡| a一级爱做片免费| 亚洲中文久久精品无码1| 亚洲高清偷拍一区二区三区|