設計模式——六大原則

        已經進入設計模式的學習有一段時間了,今天來說一說設計模式的六大原則。

        這六大原則分別是:單一職責原則(SRP)、開放-封閉原則(The Open-Closeed Principle,OCP)、依賴倒轉原則、里氏代換原則、迪米特法則(LoD)、合成/聚合複用原則(CARP)

概念:

單一職責原則:就一個類而言,應該僅有一個引起它變化的原因。

開放-封閉原則:軟件實體(類、模塊、函數等等)應該可以擴展,但是不可以修改。

依賴倒轉原則:高層模塊不應該依賴低層模塊,二者都應該依賴其抽象;抽象不應該依賴細節;細節應該依賴抽象。

里氏代換原則:子類可以擴展父類的功能,但不能改變父類原有的功能。有以下四種含義:

                         1.子類可以實現父類的抽象方法,但不能覆蓋父類的非抽象方法。
                         2.子類中可以增加自己特有的方法。
                         3.當子類的方法重載父類的方法時,方法的前置條件要比父類方法的輸入參數更寬鬆。
                         4.當子類的方法實現父類的抽象方法時,方法的後置條件(即方法的返回值)要比父類更嚴格。

迪米特法則:也叫最少知識原則,如果兩個類不必彼此直接通信,那麼這兩個類就不應當發生直接的相互作用。如果

                     其中一個類需要調用另一個類的某一個方法的話,可以通過第三者轉發這個調用。

合成/聚合複用原則:儘量使用合成/聚合,儘量不要使用類繼承。

優點:

單一職責原則:(易維護、易擴展、易複用、靈活多樣)

       1.可以降低類的複雜度,一個類只負責一項職責,其邏輯肯定要比負責多項職責簡單的多;
       2.提高類的可讀性,提高系統的可維護性;
       3.變更引起的風險降低,變更是必然的,如果單一職責原則遵守的好,當修改一個功能時,可以顯著降低對其他

          功能的影響。

開放-封閉原則:(可維護、可擴展、可複用、靈活性好)

       面對需求的改變時可以保持相對穩定,使得系統可以在第一個版本之後不對推出新的版本。

依賴倒轉原則(主要是針對大中型項目):

       1.能夠規避一些非技術因素引起的問題;

       2.可以減少需求變化引起的工作量劇增的情況;

       3.減少人員變化對項目的影響;

       4.可以讓維護人員輕鬆地擴展和維護。

里氏代換原則:

        在父類關閉的條件下實現了子類擴展,代碼出錯的機率會大大降低。

迪米特法則:

       降低類之間的耦合

合成/聚合複用原則:

       1.有助於你保持每個類被封裝,並集中在單個任務上;

       2.類與類繼承層次會保持較小規模,並且不太可能增長爲不可控制的龐然大物。

總結:

六大原則是學習設計模式的一個前提。只有掌握了六大原則以後,設計模式才能很好的去理解和把控。六大原則指導23模式的實現,都包含了封裝、繼承、多態這三個特性。對這六大原則的學習將伴隨着23模式的學習而更加深入。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章