開閉原則(open-closed principle ocp):
software entities should be open for extension, but closed for modification.
這個模組可以在不被修改的前提下被擴充套件。(不修改源**而改變模組的行為)
例如:策略模式
黎克特制代換(liskov substitution principle lsp):
從抽象化到具體化的匯出要使用繼承關係和黎克特制代換原則。
子類可以替代父類,並且不影響功能(可以增加新的行為)。
依賴倒轉原則(dependence inverion principle dip):
依賴於抽象,不要依賴於具體。高層模組應該是可復用的。
介面隔離原則(inte***ce segregation principle isp):
乙個類對另乙個類的依賴性應當是建立在最小的介面上的。
合成/聚合復用原則(composite/aggregate reuse principle carp):
在乙個新的物件裡使用一些已有的物件,使之成為新物件的一部分;新對性通過這些物件的委派達到復用已有的功能的目的。
盡量的使用合成/聚合,不要使用繼承(繼承是對父類的特殊化)
迪公尺特法則(law of demeter lod) [最少知識原則 least knowledge principle lkp]
乙個物件應當對其他物件有盡可能少的了解。(可以和依賴倒轉原則配合使用)
設計模式中的相關原則
1.單一職責原則 單一職責原則 就乙個類而言,應該僅有乙個因其他變化的原因。如果乙個類承擔的職責過多,就等於把這些職責耦合在一起,當乙個職責變化的可能會削弱或者抑制這個類完成其他職責的能力。這種耦合會導致脆弱的設計,當變化發生時,設計會遭受到意想不到的破壞。軟體設計真正要做的許多內容,就是發現職責並...
相關設計原則
軟體架構設計原則 七 1.開閉原則 open closed principle 2.依賴倒置原則 dependence inversion principle 3.單一職責原則 resposibility principle 4.介面隔離原則 inte ce segregation principl...
設計模式 設計模式原則
1 單一職責原則 srp 乙個類應當只有乙個引起其變化的原因。使用單一職責原則的好處有 1 類的複雜性降低 2 可讀性提高 3 可維護性提高 4 變更引起的風險降低 2 黎克特制替換原則 lsp 在使用父類的地方,可以使用其子類替換。黎克特制替換原則的含義 1 子類必須完全實現父類的方法 2 子類可...