設計模式原則

2021-09-29 22:01:02 字數 1303 閱讀 5862

之前對23個設計模式分類進行了總結,但是忽略了設計模式所設計的原則,這次針對設計模式的原則進行乙個整理。

首先要提的是:設計模式原則的靈魂是面向介面,以及如何合理地運用介面

設計模式中的原則有:單一職責原則、黎克特制代換原則、依賴倒轉原則、迪公尺特原則、開放-封閉原則。

一、單一職責

單質職責描述的是有且僅有乙個原因引起類的變更。

為了達到這個目標,我們需要對類和業務邏輯進行拆分。劃分到合適的粒度,讓這些各自執行單一職責的類,各司其職。

實現「高內聚」(到讓每個類盡量行使單一的功能)「低耦合」(類和類之間不會有過多冗餘的聯絡)。

二、黎克特制代換

黎克特制代換原則一種比較好的理解方式是: 所有引用基類的地方必須能使用其子類的物件

(也可以理解為父類使用的地方可以完全用子類代替)

三、依賴倒轉

依賴倒轉一般表現在三個方面:

1.高層的模組不應該依賴於低層的模組,這兩者都應該依賴於其抽象

2.抽象不應該依賴細節

3.細節應該依賴抽象

簡單來講高層次的類不應該依賴或耦合於低層次的類,這兩者都應該通過相關的介面去實現。要面向介面程式設計,而不是面向實現程式設計。

四、迪公尺特

迪公尺特原則又被稱為最少知道原則,在保證實現功能的前提下乙個物件接觸其他物件越少越好,也就是類之間的耦合度要低。

比如在生活中我們如果一昧的以交朋友的數量衡量自己的交際能力會讓自己很累的,也會難以打理好複雜的人際關係。對於並不很外向的人,大多數情況下與自己有交集的朋友交往就可以了。

五、開放-封閉

開閉原則的表達就是字面的意思,對修改封閉,對擴充套件開放

在日常的**編寫工作中盡量去避免修改已經存在的**,每一次修改就是一次錯誤的可能性,也意味著**的封裝性遭到了破壞,增加新的功能可以通過擴充套件的方式去實現。

做乙個總結:首先原則不是死板的而是靈活的,在設計模式中有些原則其實是沒有很好的符合,但是我們設計的工作中重要的是權衡利弊,掌握好尺度,並非死板的理論。原則可以說是23種設計模式的靈魂指導了設計模式。其實設計模式是一種思想,關鍵的還是怎樣和業務結合起來。馬克思的名言「光是思想力求成為現實是不夠的,現實本身應當力求趨向思想」正說明了這個道理。

設計模式 設計模式原則

1 單一職責原則 srp 乙個類應當只有乙個引起其變化的原因。使用單一職責原則的好處有 1 類的複雜性降低 2 可讀性提高 3 可維護性提高 4 變更引起的風險降低 2 黎克特制替換原則 lsp 在使用父類的地方,可以使用其子類替換。黎克特制替換原則的含義 1 子類必須完全實現父類的方法 2 子類可...

設計模式 設計原則

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

設計模式 設計原則

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