OOP-面向物件程式設計七大原則
阿新 • • 發佈:2021-07-31
OOP七大設計原則
設計原則 | 一句話歸納 | 目的 |
---|---|---|
開閉原則 | 對擴充套件開放,對修改關閉 | 降低維護帶來的新風險 |
依賴倒置原則 | 高層不應該依賴低層,要面向介面程式設計 | 更利於程式碼結構的升級擴充套件 |
單一職責原則 | 一個類只幹一件事,實現類要單一 | 便於理解,提高程式碼的可讀性 |
介面隔離原則 | 一個介面只幹一件事,介面要精簡單一 | 功能解耦,高聚合、低耦合 |
迪米特法則 | 不該知道的不要知道,一個類應該保持對其它物件最少的瞭解,降低耦合度 | 只和朋友交流,不和陌生人說話,減少程式碼臃腫 |
里氏替換原則 | 不要破壞繼承體系,子類重寫方法功能發生改變,不應該影響父類方法的含義 | 防止繼承氾濫 |
合成複用原則 | 儘量使用組合或者聚合關係實現程式碼複用,少使用繼承 | 降低程式碼耦合 |
-
開閉原則:
- 對擴充套件開放:某模組的功能是可擴充套件的,則該模組是擴充套件開放的。使軟體系統的擴充套件性更強。
- 對修改關閉:某模組被其他模組呼叫,如果該模組的原始碼不允許修改,則該模組修改關閉的。使軟體系統的功能穩定性更強。
穩定性:開閉原則要求擴充套件功能不修改原來的程式碼,這可以讓軟體系統在變化中保持穩定。
擴充套件性:開閉原則要求對擴充套件開放,通過擴充套件提供新的或改變原有的功能,讓軟體系統具有靈活的可擴充套件性。
遵循開閉原則的系統設計,可以讓軟體系統可複用,並且易於維護。 -
依賴倒置原則:
細節具有多變性,而抽象層則相對穩定,應該面向介面(抽象)程式設計,而不是面向實現程式設計。
-
單一職責原則:
單一職責原則規定一個類應該有且僅有一個引起它變化的原因,否則類應該被拆分
-
介面隔離原則:
客戶端不應該被迫依賴於它不使用的方法,一個類對另一個類的依賴應該建立在最小的介面上。
以上兩個定義的含義是:要為各個類建立它們需要的專用介面,而不要試圖去建立一個很龐大的介面供所有依賴它的類去呼叫。
-
迪米特法則:
一個類應該儘可能少的與類發生相互依賴,侷限於與本類密切相關的類,降低耦合性。
-
里氏代換原則:
所有引用父類的地方必須能使用子類物件,且程式碼正常工作,不應該使用if/else判斷類。
-
合成複用原則:
如果要使用繼承關係,則必須嚴格遵循里氏替換原則。
合成複用原則是通過將已有的物件納入新物件中,作為新物件的成員物件來實現的,新物件可以呼叫已有物件的功能,從而達到複用。
參考資料:
http://c.biancheng.net/view/1322.html
https://blog.csdn.net/qq_34760445/article/details/82931002#The_OpenClosed_Principle_OCP_18