<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
    面向對象程序的一個最明顯特征就是:少用switch(或case)語句。從本質上說,switch語句的問題在于重復(duplication)。你常 會發現同樣的switch語句散布于不同地點。如果要為它添加一個新的case子句,你必須找到所有switch語句并修改它們。面向對象中的多態 (ploymorphism)概念可為此帶來優雅的解決辦法。

    大多數時候,一看到switch語句你就應該考慮以[多態]來替換它。問題是多態該出現在哪兒?switch語句常常根據type code(型別碼)進行選擇,你要的是[與該type code相關的函數或class]。所以你應該所用Extract Method(110)將switch語句提煉到一個獨立函數中,再以Move Method(142)將它搬移到需要多態性的那個class里頭。此時你必須決定是否使用Replace Type Code with Subclasses(223)或Replace Type Code with State/Strategy(227)。一旦這樣完成繼承結構之后,你就可以運用Replace Conditional with Polymorphism(225)了。

    如果你只要在單一函數中有些選擇事例,而你并不想改動它們,那么[多態]就有點殺雞用牛刀了。這種情況下Replace Parameter with Explicit Methods(285)是個不錯的選擇。如果你的選擇條件之一是null,可以試試Introduce Null Object(260)。
    posted on 2005-08-19 14:21 ivaneeo 閱讀(515) 評論(0)  編輯  收藏 所屬分類: refactoring-從地獄中重生
    主站蜘蛛池模板: 男人天堂免费视频| 亚洲国产人成在线观看69网站| 美女露100%胸无遮挡免费观看| 亚洲国产香蕉人人爽成AV片久久| 女同免费毛片在线播放| 亚洲一区二区三区无码国产| 日本免费电影一区| 国产一级淫片a免费播放口| 国产精品亚洲自在线播放页码| 亚洲A丁香五香天堂网| 91禁漫免费进入| 偷自拍亚洲视频在线观看| 亚洲AV成人片色在线观看高潮| 成人免费一区二区三区在线观看| 春意影院午夜爽爽爽免费| 亚洲妓女综合网99| 亚洲午夜爱爱香蕉片| 一二三四免费观看在线视频中文版| 一区二区三区免费高清视频| 亚洲日本在线观看网址| 亚洲精品无码久久久| 69天堂人成无码麻豆免费视频| 久久精品无码专区免费| 中文字幕乱码亚洲无线三区| 亚洲成Av人片乱码色午夜| 日本免费高清一本视频| 免费在线观看视频网站| 一级做a爱过程免费视| 亚洲午夜精品一区二区麻豆| 亚洲人成电影福利在线播放| 亚洲乱码日产精品a级毛片久久| 免费看韩国黄a片在线观看| 免费毛片a线观看| 四虎成人精品国产永久免费无码| 亚洲香蕉在线观看| 亚洲一区中文字幕久久| 国产亚洲精品久久久久秋霞 | 亚洲性无码一区二区三区| 亚洲av无码一区二区乱子伦as| 亚洲国产成人久久综合野外| 好吊妞998视频免费观看在线|