<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| 95免费观看体验区视频| 亚洲网红精品大秀在线观看| **毛片免费观看久久精品| 亚洲熟妇无码久久精品| 青春禁区视频在线观看直播免费| 国产成人精品日本亚洲专区6| 天天摸夜夜摸成人免费视频| 欧美激情综合亚洲一二区| 免费一看一级毛片全播放| yy一级毛片免费视频| 亚洲av综合avav中文| 18禁美女黄网站色大片免费观看| 亚洲宅男精品一区在线观看| 精品国产免费观看一区| 国产精品hd免费观看| 亚洲v高清理论电影| 最近的中文字幕大全免费版| 另类小说亚洲色图| 亚洲欧洲日产国码无码久久99| 日本免费电影一区二区| 亚洲人色大成年网站在线观看| 国产精品公开免费视频| 男女一边桶一边摸一边脱视频免费| 亚洲av无码乱码国产精品fc2| AA免费观看的1000部电影| 国产亚洲精品美女| 亚洲av无码成人黄网站在线观看| 思思re热免费精品视频66| 特级毛片全部免费播放| 亚洲一区精品中文字幕| 在线a毛片免费视频观看| 国产免费人成视频在线播放播 | 色九月亚洲综合网| 亚洲精品二区国产综合野狼|