<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    ivaneeo's blog

    自由的力量,自由的生活。

      BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      669 Posts :: 0 Stories :: 64 Comments :: 0 Trackbacks

    作法(Mechanics)

    首先是簡單情況:

      • 找出只被賦值一次的臨時變量==>如果某個臨時變量被賦值超過一次,考慮使用Split Temporay Variable(128)將它分割成多個變量.
      • 將該臨時變量聲明為final.
      • 編譯.==>這可確保該臨時變量的確只被賦值一次.
      • 將[對臨時變量賦值]之語句的等號右側(cè)部分提煉到一個獨立函數(shù)中.
          • ==>首先將函數(shù)聲明為private.日后你可能會發(fā)現(xiàn)有更多class需要使用它,彼時你可輕易放松對它的保護.
          • ==>確保提煉出來的函數(shù)無任何連帶影響(副作用),也就是說該函數(shù)并不修改任何對象內(nèi)容.如果它有連帶影響,就對它進行Separate Query from Modifier(279).
      • 編譯,測試.
      • 在該臨時變量身上實施Inline Temp(119).

    我們常常使用臨時變量保存循環(huán)中的累加信息.在這種情況下,整個循環(huán)都可以被提煉為一個獨立函數(shù),這也使原本的函數(shù)可以少掉幾行擾人的循環(huán)代碼.有時候,你可能會用單一循環(huán)累加好幾個值.這種情況下你應(yīng)該針對每個累加值重復(fù)一遍循環(huán),這樣就可以將所有臨時變量都替換為查詢式(query).當然,循環(huán)應(yīng)該很簡單,復(fù)制這些代碼時才不會帶來危險.

    運用此手法,呢可能會擔(dān)心性能問題.和其他性能問題一樣,我們現(xiàn)在不管它,因為它十有八九根本不會造成任何影響.如果性能真的出了問題,你也可以在優(yōu)化時期解決它.如果代碼組織良好,那么你往往能夠發(fā)現(xiàn)更有效的優(yōu)化法案;如果你沒有進行重構(gòu),好的優(yōu)化法案就可能與你失之交臂.如果性能實在太糟糕,要把臨時變量放回去也是很容易的.

    posted on 2005-08-25 15:04 ivaneeo 閱讀(231) 評論(0)  編輯  收藏 所屬分類: refactoring-從地獄中重生
    主站蜘蛛池模板: 亚洲人成网站18禁止一区| 成人影片麻豆国产影片免费观看| 三上悠亚亚洲一区高清| 亚洲色一区二区三区四区| 国产精品入口麻豆免费观看| 久久久久亚洲精品影视| 无码国产精品一区二区免费3p| 免费无码A片一区二三区| 亚洲xxxxxx| 最近2019中文字幕mv免费看 | 亚洲精品国产精品乱码在线观看| 日本一区二区在线免费观看| 亚洲AV无码一区二区三区在线观看| 亚洲色欲色欲www在线丝| GOGOGO高清免费看韩国| 亚洲精品无码高潮喷水在线| 国产精品免费无遮挡无码永久视频| 亚洲AV无码码潮喷在线观看| 午夜免费福利小电影| 亚洲同性男gay网站在线观看| 一级一看免费完整版毛片| 亚洲日产无码中文字幕| 99国产精品免费视频观看| 亚洲Av高清一区二区三区| 国产青草视频在线观看免费影院| 免费看美女午夜大片| 亚洲av午夜福利精品一区人妖| 亚洲一区二区三区免费视频| 亚洲AV无码国产剧情| 国产在线jyzzjyzz免费麻豆| 亚洲乱妇熟女爽到高潮的片| 亚洲国产精品丝袜在线观看| 午夜无码A级毛片免费视频| 亚洲精品中文字幕无乱码麻豆| 免费一区二区三区四区五区| 亚洲免费在线观看| 亚洲男女性高爱潮网站| 亚欧日韩毛片在线看免费网站| 亚洲乱码一区二区三区国产精品| 亚洲国产av无码精品| 免费无码毛片一区二区APP|