軟體設計原則

2021-10-25 02:28:45 字數 1235 閱讀 2491

一、開閉原則(open closed principle,ocp):當應用的需求改變時,在不修改軟體實體的源**或者二進位制**的前提下,可以擴充套件模組的功能,使其滿足新的需求。

二、黎克特制替換原則(liskov substitution principle lsp):子類可以擴充套件父類的功能,但不能改變父類原有的功能。也就是說:子類繼承父類時,除新增新的方法完成新增功能外,盡量不要重寫父類的方法。

三、依賴倒置原則(dependency inverse principle dip):高層模組不應該依賴低層模組,兩者都應該依賴其抽象;抽象不應該依賴細節,細節應該依賴抽象,其核心思想要面向介面程式設計,不要面向實現程式設計。

(1)每個類盡量提供介面或抽象類,或者兩者都具備。

(2)變數的宣告型別盡量是介面或者是抽象類。

(3)任何類都不應該從具體類派生。

(4)使用繼承時盡量遵循黎克特制替換原則。

四、單一職責原則(single responsibility principle,srp):發現類的不同職責並將其分離,再封裝到不同的類或模組中。

五、介面隔離原則(inte***ce segregation principle,isp):盡量將臃腫龐大的介面拆分成更小的和更具體的介面,讓介面中只包含客戶感興趣的方法。

六、迪公尺特法則(law of demeter,lod):如果兩個軟體實體無須直接通訊,那麼就不應當發生直接的相互呼叫,可以通過第三方**該呼叫。

(1)在類的劃分上,應該建立弱耦合的類。類與類之間的耦合越弱,就越有利於實現可復用的目標。。

(2)在類的結構設計上,盡量降低類成員的訪問許可權。

(3)在類的設計上,優先考慮將乙個類設定成不變類。

(4)在對其他類的引用上,將引用其他物件的次數降到最低。

(5)不暴露類的屬性成員,而應該提供相應的訪問器(set 和 get 方法)。

(6)謹慎使用序列化(serializable)功能。

七、合成復用原則(composite reuse principle,crp):如果兩個軟體實體無須直接通訊,那麼就不應當發生直接的相互呼叫,可以通過第三方**該呼叫。

這 7 種設計原則是軟體設計模式必須盡量遵循的原則,各種原則要求的側重點不同。其中,開閉原則是總綱,它告訴我們要對擴充套件開放,對修改關閉;黎克特制替換原則告訴我們不要破壞繼承體系;依賴倒置原則告訴我們要面向介面程式設計;單一職責原則告訴我們實現類要職責單一;介面隔離原則告訴我們在設計介面的時候要精簡單一;迪公尺特法則告訴我們要降低耦合度;合成復用原則告訴我們要優先使用組合或者聚合關係復用,少用繼承關係復用。

軟體設計原則

開閉原則 ocp 軟體設計的最大原則 這個原則說的是 對擴充套件開放,對修改關閉。其實意思是說,給系統新增新的功能,但不修改原有 如果能做到呢,關鍵在於抽象化,也就是封裝變化,抽象層不變,讓具體實現依賴抽象隨需求變化。使得系統具有很強的擴充套件性和可維護性。黎克特制代換原則 任何基類可以出現的地方,...

軟體設計原則

高內聚 低耦合 乙個軟體系統要有乙個穩定的架構,不會隨需求的改變而發生巨大的變動。因此,高內聚 低耦合是乙個軟體系統設計中必須遵循的基本原則 面向抽象程式設計 在面向過程的軟體開發中,上層元件呼叫下層元件,就意味著上層元件依賴於下層元件,當下層元件發生劇烈變化時,上層元件也要跟著一起發生變動,這將導...

軟體設計原則

軟體開發中有以下一些基本原則,深刻掌握這些原則比掌握一門技術要重要。1.開閉原則 open closed principle,ocp 乙個軟體應當對擴充套件開放,對修改關閉。也就是說我們在設計軟體時,應當可以在不必修改源 的情況下改變 擴充套件 其行為。開閉原則是非常重要的設計原則,其它的設計原則實...