<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-從地獄中重生
    主站蜘蛛池模板: 99久久免费精品国产72精品九九| 国产偷伦视频免费观看| 狼群影院在线观看免费观看直播 | 亚洲精品中文字幕无码AV| 中文字幕版免费电影网站| 亚洲国产精品嫩草影院久久| 美女被爆羞羞网站在免费观看| 日本人的色道www免费一区| 亚洲日韩国产二区无码| 德国女人一级毛片免费| 亚洲情A成黄在线观看动漫软件| 中文字幕无码播放免费| 亚洲喷奶水中文字幕电影| 久草视频在线免费| 亚洲kkk4444在线观看| 成人黄页网站免费观看大全| 亚洲免费二区三区| 麻豆最新国产剧情AV原创免费| 亚洲熟伦熟女专区hd高清| 九九九精品成人免费视频| 亚洲AV综合永久无码精品天堂| 国产高清视频在线免费观看| 午夜亚洲国产理论片二级港台二级| 国产一区视频在线免费观看| 乱爱性全过程免费视频| 亚洲无码在线播放| 88av免费观看| 亚洲中文无码永久免| 亚洲国产中文字幕在线观看 | 精品亚洲永久免费精品 | 亚洲AV成人精品一区二区三区 | 久久亚洲综合色一区二区三区 | 亚洲一二成人精品区| 女人张开腿给人桶免费视频| 日本高清免费中文在线看| 精品亚洲综合在线第一区| 成人免费在线看片| 成人免费网站视频www| 亚洲国产精品自在线一区二区| 69成人免费视频| 一区二区三区免费精品视频|