設計模式常用的七大原則總結

設計模式常用的七大原則:

  1. 單一職責原則

    • 在方法上(方法很少,邏輯足夠簡單)或類上遵守單一職責原則都可以。

    • 可以降低類的複雜性

  2. 接口隔離原則

    • 客戶端不應該依賴他不需要的接口,即一個類對另一個類的依賴應該建立在最小的接口上。

    • 接口隔離原則和單一職責原則非常類似。單一職責原則要求接口的職責是單一的,而接口隔離原則要求接口儘量細化,它們有異曲同工之妙,都是要讓我們的接口功能儘量單一,儘量小。

  3. 依賴倒轉原則(DIP)

    • 高層模塊不應該依賴低層模塊,兩者都應該依賴其抽象

    • 抽象不應該依賴細節,細節應該依賴抽象

  4. 里氏替換原則

    • 任何基類可以出現的地方,子類一定可以出現。
    • LSP是繼承複用的基石,只有當衍生類可以替換掉基類,軟件單位的功能不受到影響時,基類才能真正被複用,而衍生類也能夠在基類的基礎上增加新的行爲。
    • 在類中調用其他類時務必要使用父類或接口,如果不能使用父類或接口,則說明類的設計已經違背了LSP原則。
    • 1.子類必須完全實現父類的方法
      2.子類可以有自己的個性
      3.覆蓋或實現父類的方法時輸入參數可以被放大,覆寫或實現父類的方法時輸出結果可以被縮小
    • 任何基類可以出現的地方,子類一定可以出現。里氏替換原則是繼承複用的基石,只有當衍生類可以替換基類,軟件單位的功能不受到影響時,即基類隨便怎麼改動子類都不受此影響,那麼基類才能真正被複用
  5. 開閉原則ocp

    • 軟件實體應該對擴展開放,對修改關閉
    • 當軟件需要變化時,儘量通過擴展軟件實體的行爲來實現變化,而不是通過修改已有的代碼來實現變化。
  6. 迪米特法則

    • 又叫作最少知識原則
    • 個軟件實體應當儘可能少的與其他實體發生相互作用。每一個軟件單位對其他的單位都只有最少的知識,而且侷限於那些與本單位密切相關的軟件單位。
    • 迪米特法則不希望類之間建立直接的聯繫。如果真的有需要建立聯繫,也希望能通過它的友元類來轉達。
    • 它要求一個對象應該對其他對象有最少的瞭解
    • 迪米特法則還有一個英文解釋是:talk only to your immediate friends(只和直接的朋友交流)。什麼是朋友呢?每個對象都必然會與其他的對象有耦合關係,兩個對象之間的耦合就會成爲朋友關係。那麼什麼又是直接的朋友呢?我們稱出現成員變量、方法參數、方法返回值中的類爲直接的朋友。迪米特法則要求只和直接的朋友通信。
    • 對外除了提供的public方法,不對外泄漏任何信息。
  7. 合成複用原則

    • 軟件複用時,要儘量先使用組合或者聚合等關聯關係來實現,其次才考慮使用繼承關係來實現
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章