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

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

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

    不急不徐,持之以恒。

    http://blog.gopersist.com/

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      24 隨筆 :: 0 文章 :: 52 評論 :: 0 Trackbacks

    開-閉原則(Open-Closee Principle OCP)

     

    一個軟件實體,應當對擴展開放,對修改關閉。

    要求一個軟件系統可以在不修改原有代碼的情況下,通過擴展達到增強其功能的目的。

        

    a. 里氏代換原則(LSP): 任何基類出現的地方,子類一定可以出現。

    b. 依賴倒轉原則(DIP): 要依賴于抽象,不要依賴于實現。

    c. 合成/聚合復用原則(CARP): 要盡量使用合成/聚合,而不是繼承關系達到復用的目的。

    d. 接口隔離原則(ISP): 應當為客戶端提供盡可能小的單獨的接口,而不要提供大的總接口。

    e. 迪米特法則(LoD): 一個軟件實體應當與盡可能少的其他實體發生相互作用。

    只與朋友通信而不與陌生人說話。朋友的定義如下:

    ·         1. 當前對象本身(this);

    ·         2. 以參量形式傳入到當是對象方法中的對象;

    ·         3. 當前對象的實例變量直接引用的對象,如果當前對象的實例變量是一個聚集,則聚集中的元素都是朋友;

    ·         4. 當前對象所創建的對象。

    ·         以上法則的缺點是會產生很多小方法,降低效率,產生困惑。克服方法是使用依賴倒轉原則,建立一個抽象陌生人。

     

    將條件轉移語句改寫成為多態性。如果一個條件轉移語句確實封閉了某種商務邏輯的可變性,此時將可變性封裝起來才符合開-閉原則設計思想,否則就是多態性污染

     

    接口

    單方法接口、標識接口。

    不能使用常量接口。

     

    抽象類

    應盡可能不繼承具體類而只繼承抽象類。

    應當擁有盡可能多的共同代碼,以利于復用。數據應盡可能放到實現類,以減少內存占用。

     

    聯合使用接口和抽象類,即:定義一個接口,再定義一個抽象類實現這一接口,抽象類中將必要的方法實現。這樣做的目的是因為子類只能有一個父類,如果只有抽象類,則類型定義的次要類型將很難做,如果只有接口,則無法對通用部分做實現。 這其實就是缺省適配模式。統一命名規范為:Abstract + 接口名,如:接口Collection,抽象類AbstractCollection

    posted on 2010-03-30 08:44 老林 閱讀(2041) 評論(1)  編輯  收藏 所屬分類: 設計模式

    評論

    # re: 設計原則 2010-03-31 11:07 隔葉黃鶯
    樓主也在看《Java 與模式》呀  回復  更多評論
      


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 国产日产亚洲系列| 亚洲免费在线观看| 91天堂素人精品系列全集亚洲| h视频在线观看免费| 亚洲国产精品成人久久蜜臀 | 波多野结衣久久高清免费 | 日韩国产欧美亚洲v片| 免费的一级片网站| 久久亚洲精品11p| 亚洲国产午夜福利在线播放| 一区二区在线免费视频| 亚洲中文字幕不卡无码| 伊人免费在线观看高清版| 国产V亚洲V天堂无码| jjizz全部免费看片| 亚洲AV无码精品蜜桃| 免费鲁丝片一级在线观看| 曰批全过程免费视频免费看 | 亚洲黄页网在线观看| 国产精品无码一二区免费| 黄色免费在线观看网址| 在线观看亚洲精品福利片| 嫩草成人永久免费观看| 亚洲欧洲国产成人精品| 日本最新免费不卡二区在线| 国产精品美女免费视频观看| 亚洲国产美国国产综合一区二区| 成人免费毛片内射美女-百度| 老外毛片免费视频播放| 久久亚洲国产欧洲精品一| 91频在线观看免费大全| 国产亚洲人成在线影院| 亚洲精品无码专区久久久| 国产精品久久免费| 日本激情猛烈在线看免费观看| 亚洲av永久无码精品网站 | 99在线精品免费视频九九视| 国产成人综合亚洲绿色| 亚洲成a人片在线观看日本| 毛片免费在线视频| 日韩精品无码免费专区网站|