<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
    作法(Mechanics)
      • 創造一個新函數,根據這個函數的意圖來給它命名(以它[做什么]來命名,而不是以它[怎么做]命名)。 --》即使你想要提煉(extract)的代碼非常簡單,例如只是一條消息或一個函數調用,只要新函數的名稱能夠以更好方式昭示代碼意圖,你也應該提煉 它。但如果你想不出一個更有意義的名稱,就別動。
      • 將提煉出的代碼從源函數(source)拷貝到新建的目標函數(target)中。
      • 仔細檢查提煉出的代碼,看看其中是否引用了[作用域(scope)限于源函數]的變量(包括局部變量和源函數參數)。
      • 檢查是否有[僅用于被提煉碼]的臨時變量(temporary variables)。如果有,在目標函數中將它們聲明為臨時變量。
      • 檢查被提煉碼,看看是否有任何局部變量(local-scope variables)的值被它改變。如果一個臨時變量值被修改了,看看是否可以被提煉碼處理為一個查詢(query),并將結果賦值給相關變量。如果很難 這樣做,或如果被修改的變量不止一個,你就不能僅僅將這段代碼原封不動地提煉出來。你可能需要先使用Split Temporary Variable(128),然后再嘗試提煉。也可以使用Replace Temp with Query(120)將臨時變量消滅掉。
      • 將被提煉碼中需要讀取的局部變量,當作參數傳給目標函數。
      • 處理完所有局部變量之后,進行編譯。
      • 在源函數中,將被提煉碼替換為[對目標函數的調用]。--》如果你將任何臨時變量移到目標函數中,請檢查它們原本的聲明式是否在被提煉碼的外圍。如果是,現在你可以刪除這些聲明式了。
      • 編譯,測試。
    posted on 2005-08-24 11:04 ivaneeo 閱讀(196) 評論(0)  編輯  收藏 所屬分類: refactoring-從地獄中重生
    主站蜘蛛池模板: 亚洲国产成人久久一区二区三区| 成人自慰女黄网站免费大全| 羞羞漫画登录页面免费| 国产高潮流白浆喷水免费A片 | 国产在线98福利播放视频免费| 亚洲精品亚洲人成在线| 四虎在线免费播放| 毛片亚洲AV无码精品国产午夜| 日本免费中文字幕在线看| 男男黄GAY片免费网站WWW| 亚洲一区二区三区在线播放| eeuss影院免费92242部| 国产亚洲成AV人片在线观黄桃| 亚洲国产日韩a在线播放| 国产大片线上免费看| 无码人妻一区二区三区免费视频| 日本人的色道免费网站| 亚洲七七久久精品中文国产| 一级毛片高清免费播放| 亚洲高清视频在线观看| 亚洲AV一区二区三区四区| 日本中文一区二区三区亚洲| a级成人毛片免费图片| 免费在线观看理论片| 亚洲日韩国产AV无码无码精品| 免费A级毛片无码久久版| 国产精品无码免费专区午夜| 亚洲国产综合专区在线电影| EEUSS影院WWW在线观看免费| 亚洲午夜福利在线观看| 国产精品观看在线亚洲人成网| 亚洲人成网站观看在线播放| 久久青草91免费观看| 日本亚洲成高清一区二区三区| 99视频在线精品免费| 亚洲狠狠婷婷综合久久| 亚洲国产精品无码av| 好爽…又高潮了免费毛片| a级特黄毛片免费观看| 亚洲 欧洲 自拍 另类 校园| 久久久青草青青国产亚洲免观 |