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

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

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

    ivaneeo's blog

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

      BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      669 Posts :: 0 Stories :: 64 Comments :: 0 Trackbacks
    最終的效果是:你應該更積極進取地分解函數(shù)。我們遵循這樣一條原則:每當感覺需要以注釋來說明點什么的時候,我們就把需要說明的東西寫進一個獨立函數(shù)中, 并以其用途(而非實現(xiàn)手法)命名。我們可以對一組或甚至短短一行代碼做這件事。哪怕替換后的函數(shù)調用動作比函數(shù)自身還長,只要函數(shù)名稱能夠解釋其用途,我 們也該毫不猶豫地那么做。關鍵不在于函數(shù)長度,而在于函數(shù)[做什么]和[如何做]之間的語義距離。

    百分之九十九的場合里,要把函數(shù)變小,只需使用Extract Method(110)。找到函數(shù)中適合集在一起的部分,將它們提煉出來形成一個新函數(shù)。

    如果函數(shù)內(nèi)有大量的參數(shù)和臨時變量,它們會對你的函數(shù)提煉形成阻礙。如果你嘗試運用Extract Method(110),最終就會把許多這些參數(shù)和臨時變量當作參數(shù),傳遞給被提煉出來的新函數(shù),導致可讀性幾乎沒有任何提升。啊是的,你可以經(jīng)常運用Replace Temp with Query(120)來消除這些暫時元素。Introduce Parameter Object(295)和Preserve Whole Object(288)則可以將過長的參數(shù)列變得更簡潔一些。
    如果你已經(jīng)這么做了,仍然有太多臨時變量和參數(shù),那就應該使出我們的殺手锏:Replace Method with Method Object(135)。

    如何確定該提煉哪一段代碼呢?一個很好的技巧是:尋找注解。它們通常是指出[代碼用途和實現(xiàn)手法間的語義距離]的信號。如果代碼前方有一行注解,就是在提 醒你:可以將這段代碼替換成一個函數(shù),而且可以在注解的基礎上給這個函數(shù)命名。就算只有一行代碼,如果它需要以注解來說明,那也值得將它提煉到獨立函數(shù) 去。
    條件式和循環(huán)常常也是提煉的信號。你可以使用Decompose Conditional(238)處理條件式。至于循環(huán),你應該將循環(huán)和其內(nèi)的代碼提煉到一個獨立函數(shù)中。
    posted on 2005-08-18 14:15 ivaneeo 閱讀(397) 評論(0)  編輯  收藏 所屬分類: refactoring-從地獄中重生
    主站蜘蛛池模板: 国产一区二区三区免费看| 国产亚洲成人久久| 亚洲精品免费视频| 国产午夜不卡AV免费| 无码成A毛片免费| 亚洲乱码国产一区三区| a毛看片免费观看视频| 精品亚洲综合在线第一区| 三级网站在线免费观看| 亚洲日韩小电影在线观看| 日韩亚洲国产高清免费视频| 日韩一区二区三区免费播放| 国产成人青青热久免费精品 | 久久夜色精品国产嚕嚕亚洲av| 夜夜嘿视频免费看| 亚洲欧美日韩中文字幕一区二区三区 | 亚洲AV日韩AV天堂一区二区三区 | 国产高清对白在线观看免费91| 亚洲国产成人久久综合一区77| 特级一级毛片免费看| 成人午夜亚洲精品无码网站| 国产一区二区三区免费观看在线| 少妇中文字幕乱码亚洲影视| 亚洲狠狠婷婷综合久久| 免费中文字幕在线| a级毛片在线免费| 亚洲精品国产第1页| 女人张开腿给人桶免费视频| 久久精品国产亚洲AV电影网| 国产成人毛片亚洲精品| 99久久综合精品免费 | 亚洲无码一区二区三区| 亚洲高清国产拍精品青青草原 | 日韩亚洲变态另类中文| 香港a毛片免费观看| 欧洲 亚洲 国产图片综合| 免费a在线观看播放| 久久这里只精品国产免费10| 亚洲福利在线播放| 99久久99热精品免费观看国产| 亚洲av无码专区在线电影天堂|