對擴充套件開放,對修改關閉
子類可以擴充套件父類的功能,但是不可以修改父類原有的功能
(子類繼承父類時,除了在父類的基礎上新增新的功能外,盡量不要修改父類原有的功能)
高層模組不應該依賴於低層模組,他們都應該依賴於抽象,細節不應該依賴於抽象,抽象應該依賴於細節
乙個類應該有且僅有一定數量引起他變化的原因,如果乙個類承擔太多的責則,他會引起類的責能的耦合
乙個類不應該實現和他沒有關係的介面,這樣可以體改系統的內聚性,降低系統的耦合度
朋友的朋友應該通過朋友來建立溝通,不應該直接進行溝通
在實現軟體的復用時,應該優先使用聚合/組合來實現復用,然後才考慮通過繼承來實現
使用繼承時,破壞了父類的封裝性,父類的功能完全暴露給了子類,父類和子類之間的耦合度高
六大設計原則
1.單一職責原則 單一職責原則 single responsibility principle,srp 有且僅有乙個原因引起類的變更,乙個介面或類只有乙個職責。2.黎克特制替換原則 黎克特制替換原則 liskov substitution principle,lsp 所有引用基類的地方必須能透明地使...
六大設計原則
六大設計原則,按照英文首字母概括為sollid,可簡單理解為 solid 穩定的。這六大設計原則如下 single responsibility principle 單一職責原則 open closed principle 開閉原則 liskov substitution principle 黎克特...
六大設計原則
開閉原則 對擴充套件開放對修改關閉 軟體在生命週期內會發生變化,開閉原則告訴我們應該通過拓展軟體實體行為來實現變化而不是修改已有 來完成變化 改變要盡量少 變化型別 邏輯變化 子模組變化 可見檢視變化 優點 1.已有 是通過了測試的,減少了測試成本 2.提高復用性 顆粒度越小,被復用的可能性就越大,...