設計模式 設計原則

2021-10-14 05:10:00 字數 1517 閱讀 8699

1. 單一責任原則 srp (the single responsibility principle )

修改乙個類的原因應該只有乙個。

換句話說就是讓乙個類只負責一件事,當這個類需要做過多事情的時候,就需要分解這個類。

如果乙個類承擔的職責過多,就等於把這些職責耦合在了一起,乙個職責的變化可能會削弱這個類完成其它職責的能力。

2. 開閉原則 ocp (the open closed principle )

類應該對擴充套件開放,對修改關閉。

擴充套件就是新增新功能的意思,因此該原則要求在新增新功能時不需要修改**。

符合開閉原則最典型的設計模式是裝飾者模式,它可以動態地將責任附加到物件上,而不用去修改類的**。

3.黎克特制替換原則 lsp (the liskov substitution principle )

子類物件必須能夠替換掉所有父類物件。

繼承是一種 is-a 關係,子類需要能夠當成父類來使用,並且需要比父類更特殊。

如果不滿足這個原則,那麼各個子類的行為上就會有很大差異,增加繼承體系的複雜度。

4. 介面隔離原則 isp (the inte***ce segregation principle)

不應該強迫客戶依賴於它們不用的方法。

因此使用多個專門的介面比使用單一的總介面要好

5. 依賴倒轉原則 dip (the dependency inversion principle )

高層模組不應該依賴於低層模組,二者都應該依賴於抽象;

抽象不應該依賴於細節,細節應該依賴於抽象。

高層模組包含乙個應用程式中重要的策略選擇和業務模組,如果高層模組依賴於低層模組,那麼低層模組的改動就會直接影響到高層模組,從而迫使高層模組也需要改動。

依賴於抽象意味著:

1.迪公尺特原則 lod (the law of demeter)

迪公尺特法則又叫作最少知識原則(least knowledge principle,簡寫 lkp),就是說乙個物件應當對其他物件有盡可能少的了解,不和陌生人說話

2. 合成復用原則 crp (the composite reuse principle)

盡量使用物件組合,而不是通過繼承來達到復用的目的。

3. 共同封閉原則 ccp (the common closure principle)

一起修改的類,應該組合在一起(同乙個包裡)。如果必須修改應用程式裡的**,我們希望所有的修改都發生在乙個包裡(修改關閉),而不是遍布在很多包裡。

4. 穩定抽象原則 sap (the stable abstractions principle)

最穩定的包應該是最抽象的包,不穩定的包應該是具體的包,即包的抽象程度跟它的穩定性成正比。

5. 穩定依賴原則 sdp (the stable dependencies principle)

包之間的依賴關係都應該是穩定方向依賴的,包要依賴的包要比自己更具有穩定性。

設計模式 設計模式原則

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

設計模式 設計原則

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

設計模式 設計原則

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