不急不徐,持之以恒。

          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 老林 閱讀(2044) 評論(1)  編輯  收藏 所屬分類: 設計模式

          評論

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


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


          網站導航:
           
          主站蜘蛛池模板: 溧阳市| 利川市| 中卫市| 五指山市| 随州市| 西盟| 广宗县| 理塘县| 三江| 宝坻区| 徐水县| 同心县| 正安县| 衡南县| 鲁山县| 文成县| 邢台市| 青铜峡市| 高唐县| 杭州市| 陵水| 成武县| 桂阳县| 庆安县| 广东省| 沧州市| 江津市| 连江县| 天全县| 博野县| 赞皇县| 建昌县| 万荣县| 辽阳县| 黔西| 黎平县| 资阳市| 信阳市| 绩溪县| 抚州市| 郯城县|