設計模式六大原則

2021-08-01 23:42:45 字數 1156 閱讀 9765

所謂無招勝有招,練一門功夫分為內功和外功。外功好比招式,就是所謂的23種設計模式。而內功呢,就是心法,那就是這6種法則。光會外功那是花拳繡腿,內功修為才是境界。如此眾多的設計模式,學完2遍,3遍可能也會忘的只記得單例和工廠模式。但是只要原則記住,在以後的設計中,有意無意就會用的設計模式的精髓。

單一職責原則

不要存在多於乙個導致類變更的原因。通俗的說,即乙個類只負責一項職責。

問題由來:類t負責兩個不同的職責:職責p1,職責p2。當由於職責p1需求發生改變而需要修改類t時,有可能會導致原本執行正常的職責p2功能發生故障。

一句話總結:不能為圖**量少,把牛頭馬嘴一起往乙個類塞

黎克特制替換原則

1.子類可以實現父類的抽象方法,但不能覆蓋父類的非抽象方法。

2.子類中可以增加自己特有的方法。

3.當子類的方法過載父類的方法時,方法的前置條件(即方法的形參)要比父類方法的輸入引數更寬鬆。

4.當子類的方法實現父類的抽象方法時,方法的後置條件(即方法的返回值)要比父類更嚴格。

一句話總結:盡量不要重寫父類的已經實現了的方法,可以用介面等其他方法繞過

依賴倒置原則

高層模組不應該依賴低層模組,二者都應該依賴其抽象;抽象不應該依賴細節;細節應該依賴抽象。

一句話總結:多用抽象的介面來描述相同的動作,降低實現這個動作的人和物之間的耦合度

介面隔離原則

客戶端不應該依賴它不需要的介面;乙個類對另乙個類的依賴應該建立在最小的介面上。

問題由來:類a通過介面i依賴類b,類c通過介面i依賴類d,如果介面i對於類a和類b來說不是最小介面,則類b和類d必須去實現他們不需要的方法。

一句話總結:就好比魚和人兩個類,魚是游泳和腮呼吸兩個動作,人是走路和吃飯兩個動作,這些動作不能寫在乙個介面裡面,把這四個動作都包含了。要拆成專門對魚和人的兩個介面才行。

迪公尺特法則

迪公尺特法則又叫最少知道原則,最早是在2023年由美國northeastern university的ian holland提出。通俗的來講,就是乙個類對自己依賴的類知道的越少越好。也就是說,對於被依賴的類來說,無論邏輯多麼複雜,都盡量地的將邏輯封裝在類的內部,對外除了提供的public方法,不對外洩漏任何資訊。

開閉原則

盡量通過擴充套件軟體實體的行為來實現變化,而不是通過修改已有的**來實現變化。

設計模式六大原則

0.05 設計模式 設計模式 規範 筆記 大話設計模式 物件導向的關鍵在於封裝,封裝好了才能很好的復用,達到單一職責和開放擴充套件 封閉更改的效果。1 單一職責原則 就乙個類而言,應該僅有乙個引起它變化的原因.增加功能不應該修改已有的 避免修改出錯及重複測試.如果你能夠想到多於乙個的動機去改變乙個類...

設計模式六大原則

0.05 設計模式 設計模式 規範 筆記 大話設計模式 物件導向的關鍵在於封裝,封裝好了才能很好的復用,達到單一職責和開放擴充套件 封閉更改的效果。1 單一職責原則 就乙個類而言,應該僅有乙個引起它變化的原因.增加功能不應該修改已有的 避免修改出錯及重複測試.如果你能夠想到多於乙個的動機去改變乙個類...

設計模式六大原則

參考文章 單一職責原則 single responsibility principle,srp 乙個類只負責乙個功能領域中的相應職責,或者可以定義為 就乙個類而言,應該只有乙個引起它變化的原因。開閉原則 open closed principle,ocp 乙個軟體實體應當對擴充套件開放,對修改關閉。...