設計模式 設計模式原則

2021-07-26 14:26:22 字數 1568 閱讀 8141

1、單一職責原則(srp):乙個類應當只有乙個引起其變化的原因。

使用單一職責原則的好處有:(1)類的複雜性降低;(2)可讀性提高;(3)可維護性提高;(4)變更引起的風險降低;

2、黎克特制替換原則(lsp):在使用父類的地方,可以使用其子類替換。

黎克特制替換原則的含義:(1)子類必須完全實現父類的方法;(2)子類可以有自己的個性;(3)子類覆蓋或實現父類方法時,輸入引數範圍可以比父類寬鬆(例如,父類引數是int,子類引數可以為

float);(4)子類覆寫或實現父類方法時,輸出結果可以比父類縮小(例如,父類返回baseclass,子類返回derivedclass)。

在應用時,當類中呼叫其他類時,務必使用父類或介面;若子類不能完全實現父類的方法,應用依賴、聚合或組合替代繼承;盡量避免子類的「

個性化」。

3、依賴倒置原則(dip):高層模組不應該依賴底層模組,兩者都應該依賴其抽象;抽象不應該依賴細節,細節應該依賴抽象。

三種依賴傳遞方式:(1)建構函式傳遞依賴物件(例如:

driver 類的建構函式driver(icar car));(2)setter方法傳遞依賴物件(例如:

driver

類成員函式setcar(icar car));(3)介面宣告依賴物件(例如: i

driver

介面中的介面函式drive(icar car))。

在使用時,遵循以下規則:(1)每個類盡量都有介面或抽象類,或二者皆有;(2)變數的表面型別盡量是介面或者抽象類;(3)任何類都不應該從具體類派生;(4)盡量不寫覆蓋基類的方法;(5)結合黎克特制替換原則使用。

4、介面隔離原則(isp):客戶端不應該依賴其不需要的介面;類之間依賴關係應該建立在最小的介面之上。

介面隔離原則含義:(1)介面要盡量小;(2)介面儘量減少public方法;(3)單獨的訂**務要把介面分離開來;(4)介面設計是有限度的。

在應用時,遵循一下規律:(1)乙個介面只服務於乙個子模組或業務;(2)通過業務邏輯壓縮介面中的public方法;(3)已經汙染了的介面,盡量修改,或取樣介面卡模式進行轉化。

5、迪公尺特原則(lod):乙個類應該對其需要耦合或呼叫的類知道得最少。

含義:(1)乙個類只和朋友類(出現在成員變數、成員方法輸入輸出引數中的類)交流;(2)朋友類也要減少public方法的呼叫;(3)能放在本類中的方法盡量不要放在其他類中。

6、開閉原則(ocp):乙個軟體實體(類、模組和函式)應該對擴充套件開放,對修改關閉。

變法分為三類:(1)邏輯變化,可以通過修改原有方法來完成;(2)子模組變化,通過擴充套件完成變化,(3)可見檢視變化,若設計靈活,可通過修改擴充套件完成變化,

優點:(1)可直接擴充套件單元測試;(2)開閉原則可以提高復用性;(3)開閉原則可以提高可維護性;(4)更接近物件導向的思想。

應用:(1)抽象約束,對擴充套件進行限定(不允許出現在介面或抽象類中不存在的public方法),引數型別。引用物件盡量使用介面或抽象類,而不是實現類,抽象類盡量保持穩定;(2)元資料控制模組行為;(3)制定專案章程;(4)封裝變化,不應該有兩個不同的變化出現在同乙個介面或抽象類中。

設計模式 設計原則與設計模式

一切設計都為了 的可擴充套件性和可讀性,都為了應對變化!我們是基於設計原則的思想,來選擇設計模式去實現,可讀,可擴充套件的目標!核心設計思想 對擴充套件開放,對修改關閉。含義 抽象可變功能,可變功能通過子類擴充套件實現,避免對已有抽象實現的修改。優點 便於擴充套件 核心設計思想 單個方法或單個類或單...

設計模式 設計原則

1.單一職責原則 single responsibility principle,簡稱srp 就乙個類而言,應該僅有乙個引起它變化的原因。如果乙個類承擔的職責過多,就等於把這些職責耦合在一起,乙個職責的變化可能會削弱或抑制這個類完成其他職責的能力。這種耦合會導致脆弱的設計,當變化發生時,設計會遭受到...

設計模式 設計原則

description 這是本人學習 設計模式之禪 的筆記 設計原則 一 單一職責 應該有且僅有乙個原因讓乙個類發生變更。這個原則目的是要讓介面的職責分明,結構清晰。優點 類的複雜度降低,可讀性提高,變更風險低,可維護性提高。二 黎克特制替換 通俗一點就是父類存在的地方,可以替換為子類,而程式的行為...