<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-從地獄中重生
    主站蜘蛛池模板: 亚洲男人的天堂网站| 激情亚洲一区国产精品| 国产偷国产偷亚洲清高APP| 67194熟妇在线永久免费观看| 亚洲成人激情在线| 无码一区二区三区免费| 亚洲av无码一区二区三区不卡| 国产亚洲精品免费视频播放| 亚洲日本中文字幕天堂网| 永久免费精品影视网站| 亚洲中文字幕一区精品自拍| 黄色片在线免费观看| 亚洲综合色7777情网站777| 四虎永久成人免费影院域名| 久久精品国产亚洲AV无码偷窥 | 亚洲综合久久成人69| 午夜精品射精入后重之免费观看| 亚洲AV无码专区电影在线观看| 毛片在线全部免费观看| 精品亚洲成a人片在线观看少妇| 最近免费中文字幕mv电影| 亚洲不卡中文字幕| 日韩一级免费视频| 老外毛片免费视频播放| 久久激情亚洲精品无码?V| 野花香高清在线观看视频播放免费| 亚洲天堂久久精品| 性色av免费观看| a免费毛片在线播放| 亚洲综合一区二区精品导航| 三年片在线观看免费大全| 国产精品亚洲小说专区| 亚洲人色婷婷成人网站在线观看| 无码免费一区二区三区免费播放| 亚洲av无码片在线观看| 亚洲av无码不卡私人影院| 日本免费在线观看| 亚洲另类无码一区二区三区| 久久精品亚洲男人的天堂| 最近免费中文在线视频| 老司机午夜在线视频免费|