<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    ivaneeo's blog

    自由的力量,自由的生活。

      BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      669 Posts :: 0 Stories :: 64 Comments :: 0 Trackbacks
    面向?qū)ο蟪绦虻囊粋€最明顯特征就是:少用switch(或case)語句。從本質(zhì)上說,switch語句的問題在于重復(fù)(duplication)。你常 會發(fā)現(xiàn)同樣的switch語句散布于不同地點。如果要為它添加一個新的case子句,你必須找到所有switch語句并修改它們。面向?qū)ο笾械亩鄳B(tài) (ploymorphism)概念可為此帶來優(yōu)雅的解決辦法。

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

    如果你只要在單一函數(shù)中有些選擇事例,而你并不想改動它們,那么[多態(tài)]就有點殺雞用牛刀了。這種情況下Replace Parameter with Explicit Methods(285)是個不錯的選擇。如果你的選擇條件之一是null,可以試試Introduce Null Object(260)。
    posted on 2005-08-19 14:21 ivaneeo 閱讀(515) 評論(0)  編輯  收藏 所屬分類: refactoring-從地獄中重生
    主站蜘蛛池模板: 亚洲福利视频网站| 亚洲春色另类小说| 免费无码午夜福利片| 好吊妞视频免费视频| 亚洲伊人久久大香线焦| 久久久久久精品成人免费图片| 亚洲天堂一区二区| 免费播放一区二区三区| 亚洲精品国产成人| 美女视频黄的全免费视频网站| 亚洲av专区无码观看精品天堂| 成年女人毛片免费观看97| 亚洲综合激情五月丁香六月| 午夜寂寞在线一级观看免费| 亚洲国产aⅴ成人精品无吗| 国产美女精品视频免费观看| 性生大片视频免费观看一级| 亚洲精品一级无码中文字幕| 国产裸体美女永久免费无遮挡| 亚洲乱码日产一区三区| 99久9在线|免费| 亚洲精品123区在线观看| 国产视频精品免费| 久久免费99精品国产自在现线| 亚洲av无码一区二区三区不卡 | 亚洲网红精品大秀在线观看| 最近中文字幕大全中文字幕免费| ass亚洲**毛茸茸pics| 日韩在线天堂免费观看| 九九久久国产精品免费热6 | 中文字幕人成人乱码亚洲电影| 免费人成激情视频在线观看冫| 91亚洲精品第一综合不卡播放| 最近免费中文字幕大全视频| 国内成人精品亚洲日本语音| 国产成人精品久久亚洲| 免费精品国偷自产在线在线| 亚洲精品色在线网站| 久久久久久亚洲精品中文字幕| 国产精品视频永久免费播放| 黄色视频在线免费观看|