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

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

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

    如何確定該提煉哪一段代碼呢?一個很好的技巧是:尋找注解。它們通常是指出[代碼用途和實現手法間的語義距離]的信號。如果代碼前方有一行注解,就是在提 醒你:可以將這段代碼替換成一個函數,而且可以在注解的基礎上給這個函數命名。就算只有一行代碼,如果它需要以注解來說明,那也值得將它提煉到獨立函數 去。
    條件式和循環常常也是提煉的信號。你可以使用Decompose Conditional(238)處理條件式。至于循環,你應該將循環和其內的代碼提煉到一個獨立函數中。
    posted on 2005-08-18 14:15 ivaneeo 閱讀(393) 評論(0)  編輯  收藏 所屬分類: refactoring-從地獄中重生
    主站蜘蛛池模板: 成年18网站免费视频网站| 91在线视频免费看| 久久亚洲中文字幕精品一区| 亚洲国产精品无码久久| 免费高清在线爱做视频| 在线看亚洲十八禁网站| 免费在线观看a级毛片| 曰批免费视频播放在线看片二| 免费一级成人毛片| 一区二区三区视频免费观看| 久久亚洲国产成人精品无码区| 成人精品视频99在线观看免费| 亚洲成AV人片在线观看WWW| 免费无码VA一区二区三区 | 国产精品视频免费观看| 亚洲精品视频在线免费| 中文字幕无码视频手机免费看 | 久久青草亚洲AV无码麻豆| 最近免费中文字幕大全免费| 亚洲91精品麻豆国产系列在线| 浮力影院第一页小视频国产在线观看免费 | 亚洲JLZZJLZZ少妇| 亚洲国产成人精品91久久久| 国产免费内射又粗又爽密桃视频 | 亚洲精品美女久久久久99| 免费看又黄又无码的网站| 亚洲AV色吊丝无码| 亚洲国产精品激情在线观看| 国产日韩AV免费无码一区二区| 亚洲国产成人精品久久| 国产hs免费高清在线观看| 热99RE久久精品这里都是精品免费| 亚洲美女人黄网成人女| 日韩毛片无码永久免费看| 好湿好大好紧好爽免费视频| 亚洲日本香蕉视频| 国产精品亚洲w码日韩中文| 国产一卡二卡四卡免费| jizz免费在线观看| 亚洲一区免费视频| 亚洲中文字幕日产乱码高清app|