<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 閱讀(382) 評論(0)  編輯  收藏 所屬分類: refactoring-從地獄中重生
    主站蜘蛛池模板: 亚洲AV无码一区二区二三区软件 | 亚洲日韩国产二区无码 | 高潮毛片无遮挡高清免费视频| 久久久久亚洲AV片无码下载蜜桃| 亚洲欧洲日产国码高潮αv| 成年在线观看网站免费| 四虎影视成人永久免费观看视频| 成人免费夜片在线观看| 日韩欧美亚洲中文乱码| 亚洲一区二区三区久久| 亚洲丝袜美腿视频| 亚洲va中文字幕无码久久| 国产亚洲精品成人a v小说| 亚洲AV之男人的天堂| 宅男666在线永久免费观看| 西西大胆无码视频免费| 免费v片在线观看视频网站| 久久亚洲免费视频| 国产精品网站在线观看免费传媒 | 亚洲免费无码在线| 凹凸精品视频分类国产品免费| 我要看免费的毛片| 性做久久久久久免费观看| 9久9久女女免费精品视频在线观看 | 曰韩无码AV片免费播放不卡| 国产精品观看在线亚洲人成网| 亚洲日韩精品国产3区| 亚洲色成人WWW永久在线观看| 亚洲一级毛片在线播放| 亚洲同性男gay网站在线观看| 亚洲春色在线观看| 亚洲午夜精品在线| ASS亚洲熟妇毛茸茸PICS| 亚洲人成黄网在线观看| 亚洲av永久综合在线观看尤物| 亚洲娇小性xxxx色| 亚洲精品国产第一综合99久久| 最刺激黄a大片免费网站| 久久久久亚洲精品天堂| 亚洲国产综合自在线另类| 亚洲精品中文字幕无乱码麻豆|