<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
    subclass應該繼承superclass的函數和數據。但如果它們不想或不需要繼承,又該怎么辦呢?它們得到所有禮物,卻只從中挑選幾樣來玩!

    按傳統說法,這就意味繼承系統設計錯誤。你需要為這個subclass新建一個兄弟(sibling class),再運用Push Down Method(328)和Push Down Field(329)把所有用不到的函數下推給那兄弟。這樣一來superclass就持有所有subclasses共享的東西。常常你會聽到這樣的建議:所有superclasses都應該是抽象的(abstract)。

    既然使用[傳統說法]這個略帶貶義的詞,你就可以猜到,我們不建議你這么做,起碼不建議你每次都這么做。我們經常利用subclassing手法來復用一些行為,并發現這可以很好地應用于日常工作。這也是一種壞味道,我們不否認,但氣味通常并不強烈。所以我們說:如果Refused Bequest引起困惑和問題,請遵循傳統忠告。但不必認為你每次都得那么做。十有八九這種壞味道很淡,不值得理睬。

    如果subclass復用了superclass的行為(實現),卻又不原意支持superclass得接口,Refused Bequest的壞味道就會變得濃烈。拒絕繼承superclass的實現,這一點我們不介意;但如果拒絕繼承superclass的接口,我們不以為然。不過即使你不原意繼承接口,也不要胡亂修改繼承體系,你應該運用Replace Inheritance with Delegation(352)來達到目的。
    posted on 2005-08-19 17:26 ivaneeo 閱讀(386) 評論(0)  編輯  收藏 所屬分類: refactoring-從地獄中重生
    主站蜘蛛池模板: 亚洲男人的天堂在线播放| 午夜免费福利在线| 国产成人精品日本亚洲| 杨幂最新免费特级毛片| 免费一级毛片在线播放不收费| 亚洲伊人久久精品| 国产乱子精品免费视观看片| 最近免费中文字幕大全免费版视频 | 一级中文字幕乱码免费| 四只虎免费永久观看| 亚洲av中文无码乱人伦在线播放 | 久久精品夜色国产亚洲av| 在线观看肉片AV网站免费| 久久亚洲一区二区| 亚洲国产精品免费在线观看| www.黄色免费网站| 亚洲无人区午夜福利码高清完整版| 91亚洲国产成人久久精品网站| 99re这里有免费视频精品 | 亚洲国产高清美女在线观看| 久久亚洲精品高潮综合色a片| 中文字幕在线免费观看| 亚洲伊人久久精品| 免费人成网站7777视频| 精品久久久久久国产免费了| 亚洲AV无码国产在丝袜线观看| 91精品国产免费久久国语蜜臀| 激情综合亚洲色婷婷五月| 国产一级黄片儿免费看| 久久丫精品国产亚洲av| 日韩毛片免费无码无毒视频观看| 麻豆亚洲AV成人无码久久精品| 久久精品国产亚洲5555| 88xx成人永久免费观看| 亚洲午夜精品久久久久久app| 亚洲成a人片在线观看久| 国产99视频精品免费专区| 亚洲线精品一区二区三区| 最近免费中文字幕大全高清大全1 最近免费中文字幕mv在线电影 | 1000部啪啪未满十八勿入免费| 亚洲欧美不卡高清在线|