<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)
      • 如果field的屬性是public,首先使用Encapsulate Field(206)將它封裝起來。
          • ==》如果你有可能移動那些頻繁訪問該field的函數,或如果有許多函數訪問某個field,先使用Self Encapsulate Field(171)也許會有幫助。
      • 編譯,測試。
      • 在target class中建立與source field相同的field,并同時建立相應的設值/取值(setting/getting)函數。
      • 編譯target class。
      • 決定如何在source object中引用target object。
          • ==》一個現成的field或method可以助你得到target object。如果沒有,就看能否輕易建立這樣一個函數。如果還不行,就得在source class中新建一個field來存放target object。這可能是個永久性修改,但你也可以暫不公開它,因為后續重構可能會把這個新建field除掉。
      • 刪除source field。
      • 將所有[對source field的引用]替換為[對target適當函數的調用]。
          • ==》如果是[讀取]該變量,就把[對source field的引用]替換為[對target取值函數(getter)的調用];如果是[賦值]該變量,就把[對source field的引用]替換成[對設值函數(setter)的調用]。
          • ==》如果source field不是private,就必須在source class的所有subclasses中查找source field的引用點,并進行相應替換。
      • 編譯,測試。
    posted on 2005-08-30 14:31 ivaneeo 閱讀(158) 評論(0)  編輯  收藏 所屬分類: refactoring-從地獄中重生
    主站蜘蛛池模板: 午夜免费福利视频| 久久精品无码精品免费专区| 免费阿v网站在线观看g| 内射干少妇亚洲69XXX| 最近免费2019中文字幕大全| 免费一级做a爰片久久毛片潮| 免费毛片在线视频| 亚洲Av无码国产一区二区| 成人男女网18免费视频| 亚洲精品美女久久7777777| 韩国免费三片在线视频| 精品在线免费视频| 亚洲真人日本在线| 东方aⅴ免费观看久久av| 亚洲一区免费观看| 性做久久久久久久免费看| 亚洲熟妇少妇任你躁在线观看无码| 美女露隐私全部免费直播| 久久亚洲欧洲国产综合| 叮咚影视在线观看免费完整版| 亚洲丁香色婷婷综合欲色啪| 午夜性色一区二区三区免费不卡视频 | 久久精品成人免费网站| 亚洲午夜精品一区二区公牛电影院 | 亚洲一区免费观看| 成人毛片免费观看视频大全| 毛片亚洲AV无码精品国产午夜| 亚洲性在线看高清h片| 无码av免费网站| 亚洲精品9999久久久久无码| jizzjizz亚洲| 啦啦啦完整版免费视频在线观看 | 亚洲avav天堂av在线不卡 | 一级一级一级毛片免费毛片| 啦啦啦在线免费视频| 免费国产黄网站在线观看动图| 日韩亚洲一区二区三区| 99久久综合国产精品免费| 一级a性色生活片久久无少妇一级婬片免费放 | 全免费一级午夜毛片| 日韩电影免费在线观看网站 |