<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
    如果想利用單一class做太多事情,其內往往就會出現太多instance變量。一旦如此,Duplicated Code也就是接踵而至了。

    你可以運用Extract Class(149)將數個變量一起提煉 至新class內。提煉時應該選擇class內彼此相關的變量,將它們放在一起。例如“depositAmount”和 “depositCurrency”可能應該隸屬同一個class。通常如果class內的數個變量有著相同的前綴或字尾,這就意味有機會把它們提煉到某 個組件內。如果這個組件適合作為一個subclass,你會發現Extract Subclass(330)往往比較簡單。

    有時候class并非在所有時刻都使用所有instance變量。果真如此,你或許可以多次使用Extract Class(149)或Extract Subclass(330)。

    和[太多instance變量]一樣,class內如果有太多代碼,也是[代碼重復、混亂、死亡]的絕佳滋生地點。最簡單的解決方案(還記得嗎,我們喜歡 簡單的解決)是把贅余的東西消弭于class內部。如果有五個[百行函數],它們之中很多代碼都相同,那么或許你可以把它們變成五個[十行函數]和十個提 煉出來的[雙行函數]。

    和[擁有太多instance變量]一樣,一個class如果擁有太多代碼,往往也適合使用Extract Class(149)和Extract Subclass(330)。這里有個有用技巧:先確定客戶端如何使用它們,然后運用Extract Interface(341)為每一種使用方法提煉出一個接口。這或許可以幫助你看清楚如何分解這個class。

    如果你的Large Class是個GUI class,你可能需要把數據和行為移到一個獨立的領域對象(domain object)去。你可能需要兩邊各保留一些重復數據,并令這些數據同步(sync.)。Duplicated Observed Data(189)告訴你該怎么做。這種情況下,特別是如果你使用舊式Abstract Windows Toolkit(AWT)組件,你可以采用這種方式去掉GUI class并代以Swing組件。
    posted on 2005-08-18 14:41 ivaneeo 閱讀(237) 評論(0)  編輯  收藏 所屬分類: refactoring-從地獄中重生
    主站蜘蛛池模板: 免费国产黄网站在线看| 最近最新中文字幕完整版免费高清| 亚洲av综合avav中文| 国产成人免费在线| 偷自拍亚洲视频在线观看| 亚洲色四在线视频观看| 国产成人综合久久精品免费 | 国产91色综合久久免费分享| 无码天堂va亚洲va在线va| 亚洲欧洲免费视频| 亚洲一区二区高清| 四虎1515hm免费国产| 在线看片人成视频免费无遮挡| 无码专区AAAAAA免费视频| 在线播放免费人成视频网站| 亚洲人成电影网站免费| 国产精品亚洲片在线va| 亚洲欧洲日产专区| 亚洲人成影院77777| 色在线亚洲视频www| 亚洲欧美成人av在线观看| 最新国产成人亚洲精品影院| 亚洲综合av一区二区三区不卡| 亚洲免费福利在线视频| 亚洲乱码卡一卡二卡三| 亚洲色精品VR一区区三区| 亚洲乱亚洲乱妇24p| 一级黄色免费网站| 伊人免费在线观看| 思思re热免费精品视频66 | 亚洲首页在线观看| 日本亚洲免费无线码| 日本激情猛烈在线看免费观看| 一区二区三区免费看| 18禁无遮挡无码国产免费网站| 久久久久久久免费视频| 亚洲午夜无码片在线观看影院猛 | 一区二区三区在线免费看| 在线观看免费人成视频色9| 亚洲精品在线视频| 亚洲熟妇无码爱v在线观看|