物件導向設計原則

2021-04-19 20:01:21 字數 906 閱讀 5897

oo原則

封裝變化

多用組合,少用繼承

針對介面程式設計,不針對實現程式設計

為互動物件之間的松耦合而努力

類應該對擴充套件開放,對修改關閉

依賴抽象,不要依賴具體類

只和朋友交談

別找我,我會找你

類應該只有乙個改變的理由

從設計原則到設計模式

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

--客戶無需知道所使用物件的特定型別,只需要知道物件擁有客戶所期望的介面

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

--類繼承通常為「白箱復用」,物件組合物件為「黑箱復用」。繼承在某種程度上破壞了封閉性,子類父類耦合度高;

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

封閉變化點

--使用封閉來建立物件之間的分界層,讓設計者可以在分層的一側進行修改,而不會對另一側產生不良的影響,

從而實現層次間的松耦合。

使用重構得到模式

--設計模式的應用不宜先入為主,一上來就使用設計模式是對設計模式的最大誤用。

幾條更具體的設計原則

單一職責原則(srp)

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

開放封閉原則(ocp)

--類模組應該是可擴充套件的,但是不可修改(對擴充套件開放,對修改封閉)

liskov原則(lsp)

--子類必須能夠替換他們的基類

依賴倒置原則(dip)

--高層模組不應該依賴低層模組,兩者都應該依賴於抽象。

--抽象不應該依賴實現細節,實現細節應該依賴於抽象。

介面隔離原則(isp)

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

物件導向設計原則

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

物件導向設計原則

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

物件導向設計原則

原文 單一職責原則 srp 乙個物件應該值包含單一的職責,並且該職責被完整地封裝在乙個類中。另一種表述 就乙個類而言,應該僅有乙個引起它變化的原因。開放封閉原則 ocp 軟體實體 類 模組 函式等 應該可以擴充套件,但是不可修改。也就是說在設計乙個軟體實體 類,模組等 的時候,應該使這個軟體實體在不...