<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-從地獄中重生
    主站蜘蛛池模板: 免费阿v网站在线观看g| 久久青草免费91线频观看不卡 | 亚洲国产综合人成综合网站00| 免费99热在线观看| 亚洲日韩国产一区二区三区在线| 国色精品卡一卡2卡3卡4卡免费 | 久久精品国产亚洲AV果冻传媒 | eeuss影院免费直达入口| 免费在线观看a级毛片| 日本视频免费观看| 亚洲中久无码永久在线观看同| 国产精品1024在线永久免费| 亚洲一区视频在线播放| 国产一级一毛免费黄片| 免费无码AV片在线观看软件| 国产亚洲美女精品久久久| 中文字幕成人免费高清在线视频 | 国产精品视频白浆免费视频| 久久久亚洲欧洲日产国码二区 | 青草草在线视频永久免费| 噜噜噜亚洲色成人网站| 亚洲综合区小说区激情区| 成全高清在线观看免费| 亚洲国产av一区二区三区丶| 免费无码看av的网站| 国产精品成人啪精品视频免费| 久久精品亚洲中文字幕无码网站 | 国产成人在线免费观看| 久久www免费人成精品香蕉| 男女交性永久免费视频播放| 国产亚洲精品美女久久久久| 亚洲永久精品ww47| 无人视频免费观看免费视频| 亚洲处破女AV日韩精品| 无码永久免费AV网站| 免费夜色污私人影院网站电影| 亚洲av无码精品网站| 日本高清免费网站| 日本免费中文字幕| 亚洲人成人无码.www石榴| 亚洲综合图色40p|