<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 閱讀(199) 評論(0)  編輯  收藏 所屬分類: refactoring-從地獄中重生
    主站蜘蛛池模板: 人妻仑刮八A级毛片免费看| 亚洲一区二区三区免费观看| 亚洲伊人色欲综合网| 亚洲网站在线播放| 四虎永久在线精品免费一区二区| 成人性生交大片免费看无遮挡| 在线电影你懂的亚洲| 立即播放免费毛片一级| 国产免费小视频在线观看| 亚洲视频一区二区在线观看| 无码成A毛片免费| 亚洲精品视频在线看| 国产精品免费久久久久久久久| 国产精品亚洲综合一区| 免费网站观看WWW在线观看| 好看的亚洲黄色经典| 深夜特黄a级毛片免费播放| 一级毛片直播亚洲| 97国免费在线视频| 久久亚洲AV成人出白浆无码国产| 成人a毛片视频免费看| 区久久AAA片69亚洲| 精品一区二区三区无码免费视频| 亚洲综合久久成人69| 国外成人免费高清激情视频| 亚洲视频在线视频| 永久免费无码日韩视频| 亚洲国产精品无码久久久蜜芽 | 亚洲狠狠综合久久| 麻豆视频免费观看| 精品国产亚洲AV麻豆| 亚洲AV中文无码乱人伦下载| 中文字幕免费在线看线人 | 亚洲人成电影网站久久| a毛片久久免费观看| 亚洲另类自拍丝袜第1页| 免费二级毛片免费完整视频| 亚洲最大av资源站无码av网址| 免费一级成人毛片| 91人人区免费区人人| 国产成人 亚洲欧洲|