設計模式--六大原則

1、單一職責原則編程

定義:不要存在多於一個致使類變動的緣由。通俗的說,即一個類只負責一項職責。架構

遵循單一職責原則的優勢有:函數

  • 能夠下降類的複雜度,一個類只負責一項職責,其邏輯確定要比負責多項職責簡單的多;
  • 提升類的可讀性,提升系統的可維護性;
  • 變動引發的風險下降,變動是必然的,若是單一職責原則遵照的好,當修改一個功能時能夠顯著下降對其餘功能的影響;

 

2、里氏替換原則設計

定義1:若是對每一個類型爲T1的對象o1,都有類型爲T2的對象o2,使得以T1定義的全部程序P在全部的對象o1都代換成o2時,程序P的行爲沒有發生變化,那麼類型T2是類型T1的子類型。對象

定義2:全部引用基類的地方必須能透明地使用其子類的對象。接口

里氏替換原則通俗的講就是:子類能夠擴展父類的功能,但不能改變父類原有的功能。它包含如下4層含義:基礎

  •       子類能夠實現父類的抽象方法,但不能覆蓋父類的非抽象方法。
  •       子類能夠增長本身特有的方法。
  •       當子類的方法重載父類的方法時,方法的前置條件(即方法的形參)要比父類方法的輸入參數更寬鬆
  •       當子類的方法實現父類的抽象方法時,方法的後置條件(即方法的返回值)要比父類更嚴格。

3、依賴倒置原則擴展

定義:高層模塊不該該依賴底層模塊,兩者都應該依賴其抽象;抽象不該該依賴細節;細節應該依賴抽象。軟件

依賴倒置原則基於這樣一個事實:相對於細節的多變性,抽象的東西要穩定的多。以抽象爲基礎搭建起來的架構比以細節爲基礎搭建起來的架構要穩定的多。引用

依賴倒置原則的核心思想是面向接口編程,遵循依賴倒置原則能夠下降類之間的耦合性,提升系統的穩定性,下降修改程序形成的風險。

4、接口隔離原則

定義:客戶端不該該依賴它不須要的接口;一個類對另外一個類的依賴應該創建在最小的接口上。

採用接口隔離原則對接口進行約束時,要注意如下幾點:

一、 接口儘可能小,可是要有限度

二、 爲依賴接口的類定製服務,只暴露給調用的類它須要的方法,它不須要的方法則隱藏起來

三、 提升內聚,減小對外交互

四、 運用接口隔離原則,必定要適度接口設計的過大或太小都很差。

5、迪米特法則

定義:一個對象應該對其餘對象保持最少的瞭解

軟件編程的總的原則:低耦合,高內聚

迪米特法則通俗的說就是隻和最直接的朋友通訊,即便類與類之間的耦合度越低越好。

可是,過度的使用迪米特原則,會產生大量的傳遞類,致使系統複雜度變大。因此在採用迪米特法則時要反覆權衡,既要作到結構清晰,又要高內聚低耦合。

 

6、開閉原則

定義:一個軟件實體如類、模塊和函數應該對擴展開放,對修改關閉。

當軟件須要變化時,儘可能經過擴展軟件實體的行爲來實現變化,而不是經過修改已有的代碼來實現變化。

開閉原則是面向對象設計中最基礎的設計原則。它指導咱們如何創建穩定靈活的系統。

相關文章
相關標籤/搜索