<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-從地獄中重生
    主站蜘蛛池模板: 免费乱码中文字幕网站| 永久免费毛片在线播放| 中文在线免费不卡视频| 久久久久成人片免费观看蜜芽 | 免费A级毛片无码A∨| 亚洲免费网站观看视频| 亚洲无限乱码一二三四区| 亚洲AV成人片无码网站| 四虎在线视频免费观看| 亚洲av永久无码天堂网| 国产伦精品一区二区三区免费下载| 亚洲色婷婷综合久久| 亚洲成a人片在线观| 性色av无码免费一区二区三区| 亚洲中文字幕久久无码| 亚洲AV无码专区日韩| 国产精品福利在线观看免费不卡| 亚洲色偷拍另类无码专区| **实干一级毛片aa免费| 亚洲愉拍99热成人精品热久久| 最近中文字幕免费大全| 亚洲视屏在线观看| 欧美大尺寸SUV免费| 免费无遮挡无遮羞在线看| 2021国产精品成人免费视频| 亚洲日韩久久综合中文字幕| 亚洲av再在线观看| 99久久免费观看| 亚洲AV无码资源在线观看| 亚洲线精品一区二区三区| 亚州免费一级毛片| 美女露100%胸无遮挡免费观看| 亚洲国产精品无码久久久秋霞2| 一级毛片免费播放试看60分钟| 日本无卡码免费一区二区三区| 亚洲精品国产成人| 日本人护士免费xxxx视频| a级毛片黄免费a级毛片| 亚洲人成自拍网站在线观看| 亚洲色精品88色婷婷七月丁香| 97碰公开在线观看免费视频|