<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)
      • 加入[為群集添加(add),移除(remove)元素]的函數.
      • 將[用以保存群集]的值域初始化為一個空群集.
      • 編譯.
      • 找出[群集設值函數]的所有調用者.你可以修改那個設值函數,讓它使用上述新建立的[添加/移除元素]函數;也可以直接修改調用端,改讓它們調用上述新建立的[添加/移除元素]函數.
          • ==>兩種情況下需要用到[群集設值函數];(1)群集為空時;(2)準備將原有群集替換為另一個群集時.
          • ==>你或許會想運用Rename Method(273)為[群集設值函數]改名,從setXxx()改為initializeXxx()或replaceXxx().
      • 編譯,測試.
      • 找出所有[通過取值函數(getter)獲得群集并修改其內容]的函數.逐一修改這些函數,讓它們改用[添加/移除](add/remove)函數.每次修改后,編譯并測試.
      • 修改完上述所有[通過取值函數(getter)獲得群集并修改群集內容]的函數后,修改取值函數自身,使它返回該群集的一個只讀映件(read-only view).
          • ==>在Java 2中,你可以使用Collection.unmodifiableXxx()得到該集群的只讀映件.
          • ==>在Java 1.1中,你應該返回群集的一份拷貝.
      • 編譯,測試.
      • 找出取值函數(getter)的所有用戶,從中找出應該存在于[群集之宿主對象(host object)]內的代碼.運用Extract Method(110)和Move Method(142)將這些代碼移到宿主對象去.
    • 如果你使用Java 2,那么本項重構到此為止.如果你使用Java 1.1,那么用戶也許會喜歡使用枚舉(enumeration).為了提供這個枚舉,你應該這樣做.
      • 修改現有取值函數(getter)的名字,然后添加一個新取值函數,使其返回一個枚舉.找出舊取值函數的所有被使用點,將它們都改為使用新取值函數.
          • ==>如果這一步跨度太大,你可以先使用Rename Method(273)修改原取值函數的名稱;再建立一個新取值函數用以返回枚舉;最后再修改所有調用者,使其調用新取值函數.
      • 編譯,測試.
    posted on 2005-09-15 17:51 ivaneeo 閱讀(544) 評論(0)  編輯  收藏 所屬分類: refactoring-從地獄中重生
    主站蜘蛛池模板: 亚洲一卡一卡二新区无人区| a级片在线免费看| 国产亚洲情侣一区二区无码AV| 久久精品成人免费国产片小草| 久久久久亚洲AV片无码| 无码国产精品一区二区免费式直播 | 国内精品久久久久影院亚洲| 波多野结衣视频在线免费观看 | 免费a级黄色毛片| 无码人妻一区二区三区免费看| 亚洲娇小性色xxxx| 久久青青草原亚洲av无码| 亚洲黄色免费电影| 特级做a爰片毛片免费看| 亚洲福利视频网址| 亚洲av再在线观看| 黄页免费的网站勿入免费直接进入| 欧洲乱码伦视频免费国产| 亚洲国产日韩女人aaaaaa毛片在线| 亚洲人成色7777在线观看不卡| xxxxwww免费| 国产成人高清精品免费观看| 精品亚洲国产成人| 亚洲av综合av一区| 亚洲成av人片在线观看天堂无码| 亚欧人成精品免费观看| 最近国语视频在线观看免费播放| 亚洲丁香婷婷综合久久| 亚洲精品日韩中文字幕久久久| 亚洲日韩国产一区二区三区| 成人免费a级毛片| 1区2区3区产品乱码免费| 岛国岛国免费V片在线观看| 亚洲AV日韩AV永久无码色欲| 亚洲成无码人在线观看| 精品国产综合成人亚洲区| 免费国产成人高清视频网站 | 亚洲国产精品自在拍在线播放| 国产福利在线免费| 亚洲黄色免费在线观看| 亚洲精品免费视频|