不急不徐,持之以恒。

          http://blog.gopersist.com/

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

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

           

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

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

              

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

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

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

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

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

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

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

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

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

          ·         4. 當前對象所創(chuàng)建的對象。

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

           

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

           

          接口

          單方法接口、標識接口。

          不能使用常量接口。

           

          抽象類

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

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

           

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

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

          評論

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


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


          網站導航:
           
          主站蜘蛛池模板: 湖州市| 新沂市| 郴州市| 波密县| 调兵山市| 高青县| 惠来县| 南投市| 汶川县| 九龙县| 育儿| 辛集市| 富源县| 平利县| 六盘水市| 马边| 天峨县| 凤冈县| 云南省| 泰顺县| 驻马店市| 靖州| 鲁甸县| 绥棱县| 韶关市| 锦州市| 遂川县| 班戈县| 吉木萨尔县| 崇左市| 隆昌县| 肃宁县| 新巴尔虎右旗| 山阳县| 罗定市| 宜昌市| 都昌县| 绍兴市| 黄浦区| 仁布县| 轮台县|