設計模式的六大原則

2021-07-07 09:33:40 字數 1217 閱讀 8950

單一職責原則

乙個類或者模組應該有且只有乙個改變的原因。
黎克特制替換原則
黎克特制替換原則通俗的來講就是: 子類可以擴充套件父類的功能,但不能改變父類原有的功能。

它包含以下4層含義:

• 子類可以實現父類的抽象方法,但不能覆蓋父類的非抽象方法;

• 子類中可以增加自己特有的方法;

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

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

依賴倒置原則
面向介面程式設計,採用依賴倒置原則給多人並行開發帶來了極大的便利。

• 低層模組盡量都要有抽象類或介面,或者兩者都有。

• 變數的宣告型別盡量是抽象類或介面。

• 使用繼承時遵循黎克特制替換原則。

介面隔離原則
建立單一介面,不要建立龐大臃腫的介面,盡量細化介面,介面中的方法盡量少。

提高系統的靈活性和可維護性。

• 介面盡量小,但是要有限度。

對介面進行細化可以提高程式設計靈活性是不掙的事實,但是如果過小,則會 造成介面數量過多,使設計複雜化,所以一定要適度。

• 為依賴介面的類定**務,只暴露給呼叫的類它需要的方法,它不需要的方法則隱藏起來。

只有專注地為一 個模組提供定**務,才能建立最小的依賴關係。

• 提高內聚,減少對外互動。

使介面用最少的方法去完成最多的事情。

迪公尺特法則
乙個物件應該對其他物件保持最少的了解,只與直接的朋友通訊。

其中,我們稱出現成員變數、方法引數、方法返回值中的類為直接的朋友,而出現在區域性變數中的類則不是直接的朋友。

也就是說,陌生的類最好不要作為區域性變數的形式出現在類的內部。

開閉原則
乙個軟體實體如類、模組和函式應該對擴充套件開放,對修改關閉。
總結
用抽象構建框架,用實現擴充套件細節。

1. 單一職責原則告訴我們實現類要職責單一;

2. 黎克特制替換原則告訴我們不要破壞繼承體系;

3. 依賴倒置原則告訴我們要面向介面程式設計;

4. 介面隔離原則告訴我們在設計介面的時候要精簡單一;

5. 迪公尺特法則告訴我們要降低耦合。

6. 而開閉原則是總綱,他告訴我們要對擴充套件開放,對修改關閉。

設計模式六大原則

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

設計模式六大原則

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

設計模式六大原則

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