<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∨无码中文777| 亚洲AV无码专区在线观看成人| 免费H网站在线观看的| 亚洲一级毛片在线观| 国产精品怡红院永久免费| 亚洲国产成人无码av在线播放| 亚州免费一级毛片| 激情综合亚洲色婷婷五月APP | 永久免费AV无码网站国产 | 亚洲成a人不卡在线观看| 精品熟女少妇av免费久久| 亚洲男人电影天堂| 成年女人毛片免费视频| 色九月亚洲综合网| 中文字幕在亚洲第一在线| 成人片黄网站色大片免费观看APP| 亚洲Av综合色区无码专区桃色| 日韩精品人妻系列无码专区免费 | 一区二区三区观看免费中文视频在线播放| 亚洲成Av人片乱码色午夜| 3344永久在线观看视频免费首页 | 免费A级毛片无码A| 国产99视频精品免费视频76| 亚洲av无码片在线播放| 99视频全部免费精品全部四虎| 亚洲国产精品嫩草影院| 国产福利电影一区二区三区,亚洲国模精品一区| eeuss影院www天堂免费| 久久久久亚洲精品天堂| 国产男女猛烈无遮挡免费视频| 久久久久久久久久免免费精品| 亚洲精品中文字幕无乱码| 国产成人免费手机在线观看视频 | ass亚洲**毛茸茸pics| 尤物永久免费AV无码网站| 99精品免费视频| 久久久久久亚洲精品影院| 国产亚洲精aa成人网站| 一本岛高清v不卡免费一三区| 免费人妻精品一区二区三区|