<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无码精品色午夜| 亚洲欧美熟妇综合久久久久| 日本免费一区二区在线观看| 亚洲精品中文字幕麻豆| 免费A级毛片无码专区| 亚洲国产精品lv| 国产男女爽爽爽爽爽免费视频| 亚洲国产精品xo在线观看| 18禁免费无码无遮挡不卡网站| 亚洲国产人成在线观看| 性一交一乱一视频免费看| 亚洲av无一区二区三区| 免费国产小视频在线观看| jizz中国免费| 亚洲丝袜美腿视频| 国产人在线成免费视频| 99亚洲乱人伦aⅴ精品| 亚洲精品线路一在线观看| 两个人看的www免费高清 | 国产成人涩涩涩视频在线观看免费| 亚洲熟女乱色一区二区三区| 四虎国产精品免费视| 久久毛片免费看一区二区三区| 亚洲阿v天堂在线| 青青草a免费线观a| 黄色网址在线免费观看| 国产av无码专区亚洲av桃花庵| 99久久99久久精品免费看蜜桃| 亚洲国产成人无码AV在线影院| 亚洲精品NV久久久久久久久久| 99久久免费观看| 国产精品亚洲五月天高清| 久久久久亚洲AV成人无码网站| 国产美女在线精品免费观看| 永久免费无码日韩视频| 亚洲视频在线观看地址| 亚洲AV无码不卡在线观看下载| 无码一区二区三区免费| 真人无码作爱免费视频| 亚洲视频在线观看免费视频|