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

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

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

    ivaneeo's blog

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

      BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
      669 Posts :: 0 Stories :: 64 Comments :: 0 Trackbacks
    作法(Mechanics)
      • 檢查source class定義之source method所使用的一切特性(features),考慮它們是否也該被搬移。
          • ==》如果某個(gè)特性只被你打算搬移的那個(gè)函數(shù)用到,你應(yīng)該將它一并搬移。如果另有其他函數(shù)使用了這個(gè)特性,你可以考慮將使用該特性的所有函數(shù)全部一并搬移。有時(shí)侯搬移一組函數(shù)比逐一搬移簡(jiǎn)單些。
      • 檢查source class的subclass和superclass,看看是否有該函數(shù)的其他聲明。
          • ==》如果出現(xiàn)其他聲明,你或許無(wú)法進(jìn)行搬移,除非target class也同樣表現(xiàn)出多態(tài)性(polymorphism)。
      • 在target class中聲明這個(gè)函數(shù)。
          • ==》你可以為此函數(shù)選擇一個(gè)新名稱(chēng) -- 對(duì)target class更有意義的名稱(chēng)。
      • 將source method的代碼拷貝到target method中。調(diào)整后者,使其能在新家中正常運(yùn)行。
          • ==》如果target method使用了source特性,你得決定如何從target method引用source object。如果target class中沒(méi)有相應(yīng)的引用機(jī)制,就把source object reference當(dāng)作參數(shù),轉(zhuǎn)給新建立的target method。
          • ==》如果source method包含異常處理式(exception handler),你得判斷邏輯上應(yīng)該由哪個(gè)class來(lái)處理這一異常。如果應(yīng)該由source class來(lái)負(fù)責(zé),就把異常處理式留在原地。
      • 編譯target class。
      • 決定如何從source正確引用target object。
          • ==》可能會(huì)有一個(gè)現(xiàn)成的值域或函數(shù)幫助你取得target object。如果沒(méi)有,就看能否輕松建立一個(gè)這樣的函數(shù)。如果還是不行,你得在source class中新建一個(gè)新值域來(lái)保存target object。這可能是一個(gè)永久性修改,但你也可以讓它保持暫時(shí)的地位,因?yàn)楹罄^的其他重構(gòu)項(xiàng)目可能會(huì)把這個(gè)新建值域去掉。
      • 修改source method,使之成為一個(gè)delegating method(純委托函數(shù))。
      • 編譯,測(cè)試。
      • 決定[刪除source method]或?qū)⑺?dāng)作一個(gè)delegating method保留下來(lái)。
          • ==》如果你經(jīng)常要在source object中引用target method,那么將source method作為delegating method保留下來(lái)會(huì)比較簡(jiǎn)單。
      • 如果你移除source method,請(qǐng)將source class中對(duì)source method的所有引用動(dòng)作,替換為[對(duì)target method的引用動(dòng)作]。
          • ==》你可以每修改一個(gè)引用點(diǎn)就編譯并測(cè)試一次。也可以通過(guò)一次[查找/替換]改掉所有引用點(diǎn),這通常簡(jiǎn)單一些。
      • 編譯,測(cè)試。
    posted on 2005-08-30 10:51 ivaneeo 閱讀(160) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): refactoring-從地獄中重生
    主站蜘蛛池模板: 亚洲国产成人五月综合网 | 亚洲成a人一区二区三区| 精品人妻系列无码人妻免费视频 | 亚洲a一级免费视频| 亚洲人成图片网站| 久久亚洲av无码精品浪潮| 999任你躁在线精品免费不卡| 亚洲欧洲日产国码久在线| 曰韩亚洲av人人夜夜澡人人爽| 亚洲视频免费在线看| 暖暖免费中文在线日本| 久久精品国产亚洲AV麻豆网站| 国产精品成人四虎免费视频| 暖暖在线视频免费视频| 自拍偷自拍亚洲精品播放| 久久久亚洲欧洲日产国码农村| 啦啦啦www免费视频| 免费精品一区二区三区第35| 亚洲欧美日韩久久精品| 亚洲国产精品不卡在线电影| 男人的天堂亚洲一区二区三区 | 久久久久国产精品免费网站| 亚洲成a∨人片在无码2023| 亚洲国产成人久久精品动漫 | 亚洲国产精品免费在线观看| 免费无码国产V片在线观看| 亚洲免费二区三区| 日韩亚洲欧洲在线com91tv| 在线观看人成网站深夜免费| 一级毛片在线免费观看| 一级中文字幕乱码免费| 亚洲美国产亚洲AV| 亚洲制服丝袜在线播放| 亚洲爆乳无码专区| 红杏亚洲影院一区二区三区| 日韩成人免费视频播放| 欧美日韩国产免费一区二区三区| 久久国产精品免费网站| 你懂的免费在线观看| 精品多毛少妇人妻AV免费久久| 综合偷自拍亚洲乱中文字幕|