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