物件導向設計原則

2021-08-08 01:48:33 字數 828 閱讀 6026

1.依賴倒置原則(dip)

高層模組(穩定)不應依賴於底層模組(變化),兩者都應依賴於抽象(穩定)。

抽象(穩定)不應依賴於實現細節變化(變化),實現細節(變化)應依賴於抽象(穩定)。

2.開放封閉原則(ocp)

對擴充套件開放,對更改封閉。

類模組應該是可擴充套件的,但不可修改

3.單一職責原則(srp)

乙個類應該僅有乙個引起它變化的原因

變化的方向隱含著類的責任

4.liskov替換原則(lsp)

子類必須能夠替換它們的基類(is-a)

繼承表達型別抽象

5.介面隔離原則(isp)

不應該強迫客戶程式依賴它們不用的方法

介面應該小而完備

6.優先使用物件組合,而不是類繼承

類繼承通常被稱為"白箱復用",物件組合通常被稱為"黑箱復用"。

繼承在某種程度上破壞了封裝性,子類父類的耦合度更高。

而物件組合只要求被組合物件具有良好定義的介面,耦合度較低。

7.封裝變化點

使用封裝來建立物件之間的分界層,讓設計者可以再分界層的一側進行修改,而不會對另一側產生不良的影響,從而實現層次之間的松耦合。

8.針對介面程式設計,而不是針對實現程式設計

不將變數型別宣告為某個特定的具體類,而是宣告為某個介面

客戶程式無需獲知物件的具體型別,只需要知道物件所具有的介面

減少系統中各部分的依賴關係,從而實現"高類聚,低耦合"的型別設計方案

重構技法:

靜態->動態

早繫結->晚繫結

繼承->組合

編譯時依賴->執行時依賴

緊耦合->松耦合

物件導向設計原則

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

物件導向設計原則

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

物件導向設計原則

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