<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| 中文字幕免费观看| A级毛片内射免费视频| 亚洲国色天香视频| 永久黄色免费网站| 亚洲成a人片7777| 免费观看黄色的网站| 亚洲无限乱码一二三四区| 24小时免费看片| 亚洲成年人免费网站| 麻豆视频免费播放| 亚洲13又紧又嫩又水多| 毛片大全免费观看| 亚洲av片在线观看| 亚洲不卡无码av中文字幕| 青娱乐在线视频免费观看| 亚洲毛片av日韩av无码| 羞羞视频免费网站在线看| 国产亚洲精品va在线| 99久久久国产精品免费牛牛| 亚洲黄色网站视频| 亚洲国产精品无码久久久蜜芽 | 99久久久国产精品免费蜜臀| 激情内射亚洲一区二区三区| 免费在线视频你懂的| 亚洲熟妇久久精品| 亚洲国产精品专区在线观看| 全黄大全大色全免费大片| 免费人成无码大片在线观看| 国产裸体美女永久免费无遮挡| 亚洲成AV人片天堂网无码| 在线精品一卡乱码免费| 色视频在线观看免费| 亚洲毛片αv无线播放一区| **一级毛片免费完整视| 亚洲AV无码AV日韩AV网站| 国内精品99亚洲免费高清| aⅴ在线免费观看| 偷自拍亚洲视频在线观看| 亚洲精品无码国产| 免费网站看v片在线香蕉|