物件導向的設計原則

2021-06-22 16:21:41 字數 1723 閱讀 2537

1.單一職責原則(srp)

單一職責原則的核心思想就是:系統中的每乙個物件都應該只有乙個單獨的職責,而所有物件所關注的就是自身職責的完成。它的英文縮寫是srp,英文全稱是single responsibility principle。

其實單一職責原則的意思就是開發人員經常說的"高內聚、低耦合"。也就是說,每個類應該只有乙個職責,對外只能提供一種功能,而引起類變化的原因應該只有乙個。在設計模式中,所有的設計模式都遵循這一原則。

2.開閉原則(ocp)

開閉原則的核心思想就是:乙個物件對擴充套件開放,對修改關閉。它的英文縮寫是ocp,英文全稱是open for extension,closed for modification。

其實開閉原則的意思就是:對類的改動是通過增加**進行的,而不是改動現有的**。也就是說,軟體開發人員一旦寫出了可以執行的**,就不應該去改變它,而是要保證它能一直執行下去,如何才能做到這一點呢?這就需要借助於抽象和多型,即把可能變化的內容抽象出來,從而使抽象的部分是相對穩定的,而具體的實現層則是可以改變和擴充套件的。

3.黎克特制替換原則(lsp)

黎克特制替換原則的核心思想就是:在任何父類出現的地方都可以用它的子類來替代。它的英文縮寫是lsp,英文全稱是liskov substitution principle。

其實黎克特制替換原則的意思就是:同乙個繼承體系中的物件應該有共同的行為特徵。黎克特制代換原則關注的是怎樣良好地使用繼承,也就是說不要濫用繼承,它是繼承復用的基石。

4.依賴注入原則(dip)

依賴注入原則的核心思想就是:要依賴於抽象,不要依賴於具體的實現。它的英文縮寫是dip,英文全稱是dependence inversion principle。

其實依賴注入原則的意思就是:在應用程式中,所有的類如果使用或依賴於其他的類,則都應該依賴於這些其他類的抽象類,而不是這些其他類的具體實現類。抽象層次應該不依賴於具體的實現細節,這樣才能保證系統的可復用性和可維護性。為了實現這一原則,就要求開發人員在程式設計時要針對介面程式設計,而不針對實現程式設計。

5.介面分離原則(isp)

介面分離原則的核心思想就是:不應該強迫客戶程式依賴它們不需要使用的方法。它的英文縮寫是isp,英文全稱是inte***ce segregation principle。

其實介面分離原則的意思就是:乙個介面不需要提供太多的行為,乙個介面應該只提供一種對外的功能,不應該把所有的操作都封裝到乙個介面當中。

6.迪公尺特原則(lod)

迪公尺特原則的核心思想就是:乙個物件應當對其他物件盡可能少的了解。它的英文縮寫是lod,英文全稱是law of demeter。

其實迪公尺特原則的意思就是:降低各個物件之間的耦合,提高系統的可維護性。在模組之間,應該只通過介面來通訊,而不理會模組的內部工作原理,它可以使各個模組耦合程度降到最低,促進軟體的復用。

7.優先使用組合而不是繼承原則(carp)

優先使用組合而不是繼承原則的核心思想就是:優先使用組合,而不是繼承。它的英文縮寫是carp,英文全稱是composite/aggregate reuse principle。

其實優先使用組合而不是繼承原則的意思就是:在復用物件的時候,要優先考慮使用組合,而不是繼承,這是因為在使用繼承時,父類的任何改變都可能影響子類的行為,而在使用組合時,是通過獲得對其他物件的引用而在執行時刻動態定義的,有助於保持每個類的單一職責原則。

物件導向設計原則

oo原則 封裝變化 多用組合,少用繼承 針對介面程式設計,不針對實現程式設計 為互動物件之間的松耦合而努力 類應該對擴充套件開放,對修改關閉 依賴抽象,不要依賴具體類 只和朋友交談 別找我,我會找你 類應該只有乙個改變的理由 從設計原則到設計模式 針對介面程式設計,而不是針對實現程式設計 客戶無需知...

物件導向設計原則

物件設計原則 物件導向設計原則 物件導向設計的基石是 開 閉 原則。開一閉 原則講的是 乙個軟體實體應當對擴充套件開放,對修改關閉。這個規則說的是,在設計乙個模組的時候,應當使這個模組可以在不被修改的前提下被擴充套件。從另外乙個角度講,就是所謂的 對可變性封裝原則 對可變性封裝原則 意味著兩點 1 ...

物件導向設計原則

oo原則 封裝變化 多用組合,少用繼承 針對介面程式設計,不針對實現程式設計 為互動物件之間的松耦合而努力 類應該對擴充套件開放,對修改關閉 依賴抽象,不要依賴具體類 只和朋友交談 別找我,我會找你 類應該只有乙個改變的理由 從設計原則到設計模式 針對介面程式設計,而不是針對實現程式設計 客戶無需知...