<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成黄在线观看动漫尤物| 国产午夜无码片免费| 亚洲av永久无码精品古装片 | 亚洲一线产区二线产区区| 永久免费的网站在线观看| 精品丝袜国产自在线拍亚洲| 18禁成年无码免费网站无遮挡| 亚洲av乱码一区二区三区香蕉| 成人a视频片在线观看免费| 亚洲精华液一二三产区| 免费一级毛片在播放视频| 日日狠狠久久偷偷色综合免费 | av午夜福利一片免费看久久| 亚洲色精品88色婷婷七月丁香 | 日韩精品无码免费专区午夜| 国产国拍亚洲精品mv在线观看| 久久99精品视免费看| 亚洲国产精品日韩在线观看| 在线观看人成视频免费| 一区二区视频在线免费观看| 国产AV无码专区亚洲AVJULIA| 中文字幕乱码免费视频| 亚洲国产精品无码久久九九大片 | 亚洲综合日韩中文字幕v在线| 婷婷亚洲天堂影院| 亚洲免费视频一区二区三区| 图图资源网亚洲综合网站| 免费毛片在线播放| 国产成人高清精品免费观看| 亚洲视频免费在线播放| 国产免费拔擦拔擦8x| 一级毛片aaaaaa免费看| 亚洲精品女同中文字幕| 久久精品国产亚洲av成人|