物件導向設計原則

2021-06-16 19:08:56 字數 1176 閱讀 3530

在學習設計模式之前我們先來了解物件導向設計的一些基本原則,每一種設計模式都符合其中一種或者是多種原則,通過使用這些原則來提高軟體的可維護性和可復用性。

一般來說可維護性低的軟體設計,通常都由以下幾個原因造成:

(1)  過於僵硬:很難在原有的系統中新增新的功能,新增新的功能將會涉及到多個模組,造成系統改動過大。

(2)  過於脆弱:與過於僵硬同時存在一旦修改系統某個功能,可能會導致在看上去沒有多大關聯的另乙個地方發生故障。

(3)  復用率低:復用是指乙個軟體的組成部分可以在同乙個專案的不同地方或者在不同的專案中重複使用,而復用率低的乙個表現就是程式設計師重複編寫一些已有的程式**。

(4)  黏度過高:對系統進行改動時,有時可以儲存系統原有的設計意圖與設計框架,有時可以破壞原有的設計和框架。前者對系統的擴充套件有利,應該盡量按照前者來改動。如果說後者比前者更容易則稱之為黏度過高,黏度過高將導致程式設計師使用錯誤的**維護方案,原因會在後面解釋。

那麼乙個好的系統設計應該是怎樣的呢,我覺得應該具備以下三點

(1)  可擴充套件性:容易將新的功能新增到原有的系統中,與「過於僵硬」相對應。

(2)  靈活性:**在被修改時不會波及到很多的現有模組,與「過於脆弱」相對應。

(3)  可插入性:能夠很方便的將乙個類抽取出去,同時將另乙個有相同介面的類新增進來,與「黏度過高」相對應。

現在了解一下這些原則

單一職責原則:在系統中乙個類只負責乙個功能領域中的相應職責,也就是說僅有乙個引起它變化的原因,說的通俗點就是乙個類不能太累了,它只要做一件事就可以了。

開閉原則:軟體實體應該對擴充套件開放,對修改關閉。當軟體的需求改變時,我們應該保證系統原有的設計和框架是穩定的,那樣我們在對系統進行擴充套件時就不用修改原**。

李氏代換原則:能夠用基類(父類)的地方都能用子類,把父類設計為抽象類或介面,子類繼承或實現父類,新增功能時不用修改原有子類的**,就只要新增新的子類即可。

依賴倒轉原則:要針對介面程式設計,不要針對實現程式設計。乙個具體類裡的方法應當只有其父類裡的方法,不要再有新的方法。

合成復用原則:盡量使用物件組合,而不是繼承來達到復用的目的。

迪公尺特法則:不要跟」陌生人「說話,乙個模組被修改時要盡量少的影響到其它模組。

物件導向設計原則

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

物件導向設計原則

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

物件導向設計原則

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