物件導向設計原則

2021-06-06 02:51:58 字數 971 閱讀 5084

原文:

單一職責原則(srp):

乙個物件應該值包含單一的職責,並且該職責被完整地封裝在乙個類中。

另一種表述:就乙個類而言,應該僅有乙個引起它變化的原因。

開放封閉原則(ocp):

軟體實體(類、模組、函式等)應該可以擴充套件,但是不可修改。也就是說在設計乙個軟體實體(類,模組等)的時候,應該使這個軟體實體在不被修改的前提下被擴充套件,即實現在不修改原**的情況下改變模組的行為。

依賴倒轉原則(dip):

高層模組不應依賴底層模組,兩個都應該依賴抽象。抽象不應該依賴細節,細節應該依賴抽象。

另一種表述:要針對介面程式設計,不要針對實現程式設計。

黎克特制代換原則(lsp):

子類必須能夠替換掉它們的父類。

迪公尺特法則(lod):

又叫最少知識原則、不要和「陌生人」講話原則,要求乙個類(軟體實體)應該盡可能少的和其它類(軟體實體)發生作用。

另一種表述:如果兩個類不必直接通訊,那麼這兩個類就不應當發生直接的相互作用。如果其中乙個類需要呼叫另乙個類的某乙個方法的話,可以通過第三者**這個呼叫。

介面隔離原則(isp):

使用多個專門的介面比使用單一的介面要好。

另一種表述:一旦乙個介面太大,則需要將它分割成一些更細小的介面,使用該介面的客戶端僅需要知道與之相關的方法即可。

合成/聚集復用原則(carp):

在乙個新的物件裡面使用一些已有的物件,使之成為新物件的一部份,新的物件通過向這些物件的委派達到復用已有功能的目的。

另一種表述:盡量使用合成/聚集復用而不是繼承復用。

參考:

《大話設計模式》程杰 清華大學出版社

《設計模式》劉偉 清華大學出版社

物件導向設計原則

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

物件導向設計原則

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

物件導向設計原則

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