軟件設計七大原則

1.開閉原則

一個軟件實體如類、模塊和函數(shù)應該對擴展開放,對修改關閉。
用抽象構建框架,用實現(xiàn)擴展細節(jié)
解釋:當我們有新的需求時,應該創(chuàng)建新的類來實現(xiàn)新功能,而不用修改原來已經(jīng)正常運行的代碼。
優(yōu)點:提高軟件系統(tǒng)的可復用性及可維護性
開閉原則是所有軟件設計原則的總則。

2.依賴倒置原則

高層模塊不應該依賴低層模塊,二者都應該依賴其抽象
抽象不應該依賴細節(jié),細節(jié)應該依賴抽象
針對接口編程,不要針對實現(xiàn)編程
解釋:controller類應該去跟service接口打交道,而不要直接跟serviceImpl類或者Dao和POJO打交道
優(yōu)點:可以減少類間的耦合性,提高系統(tǒng)穩(wěn)定性,提高代碼可讀性和可維護性,可降低修改程序所造成的風險

3.單一職責原則

不要存在多于一個導致類變更的原因
一個類/接口/方法只負責一項職責
解釋*:如果一個類/接口有多種類型的功能,應該拆分為多個平級的類/接口;如果一個方法中存在多個邏輯判斷,應該拆分為多個平級的方法。
優(yōu)點:降低類的復雜度,提高類的可讀性,提高系統(tǒng)的可維護性,降低變更引起的風險

4.接口隔離原則

用多個專門的接口,而不使用單一的總接口,客戶端不應該依賴它不需要的接口
一個類對一個類的依賴應該建立在最小的接口上
建立單一接口,不要建立龐大臃腫的接口
盡量細化接口,接口中的方法盡量少
注意適度原則,一定要適度
優(yōu)點:符合我們常說的高內聚低耦合的設計思想,從而使得類具有很好的可讀性,可擴展性和可維護性

5.迪米特原則

一個對象應該對其他對象保持最少的了解,又叫最少知道原則
盡量降低類與類之間的耦合
強調只和朋友交流,不和陌生人說話
朋友:出現(xiàn)在成員變量、方法的輸入、輸入?yún)?shù)中的類稱為成員朋友類,而出現(xiàn)在方法體內部的類不屬于朋友類。
優(yōu)點:降低類之間的耦合

6.里氏替換原則

如果對每一個類型為T1的對象o1,都有類型為T2的對象o2,使得以T1定義的所有程序P在所有的對象o1都替換成o2時,程序P的行為沒有發(fā)生變化,那么T2是類型T1的子類型。
擴展:一個軟件實體如果適用一個父類的話,那一定適用于其子類,所有引用父類的地方必須能透明地適用其子類的對象,子類對象能夠替換父類對象,而程序邏輯不變。
引申意義:子類可以擴展父類的功能,但不能改變父類原有的功能。
含義1:子類可以實現(xiàn)父類的抽象方法,但不能覆蓋父類的非抽象方法。
含義2:子類中可以增加自己特有的方法。
含義3:當子類的方法重載父類的方法時,方法的前置條件(即方法的輸入/入?yún)ⅲ┮雀割惙椒ǖ妮斎雲(yún)?shù)更寬松。
含義4:當子類的方法實現(xiàn)父類的方法時(重寫/重載或實現(xiàn)抽象方法),方法的后置條件(即方法的輸出/返回值)要比父類更嚴格或相等。
優(yōu)點1:約束繼承泛濫,開閉原則的一種體現(xiàn)。
優(yōu)點2:加強程序的健壯性,同時變更時也可以做到非常好的兼容性
提高程序的可維護性、擴展性。降低需求變更時引入的風險。

7.合成復用原則

盡量使用對象組合/聚合,而不是繼承關系達到軟件復用的目的
聚合has-A(電腦與U盤的關系) 組合contains-A(國和家的關系) 繼承is-A
優(yōu)點:可以使系統(tǒng)更加靈活,降低類與類之間的耦合度,一個類的變化對其他類造成的影響相對較少

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 設計模式概述 在學習面向對象七大設計原則時需要注意以下幾點:a) 高內聚、低耦合和單一職能的“沖突”實際上,這兩者...
    彥幀閱讀 3,901評論 0 14
  • 獨自帶孩子兩天半,時間好像過得是慢了那么一點點,但也給了我更多仔細去感受去體味的機會。 昨天早晨有老公煮的粥和雞蛋...
    呂燕閱讀 392評論 0 1
  • 街角的旗袍店還在 試旗袍的人卻 遲遲不來 忘了時間 或是 忘了地點 都結的一種果
    折子zhezi閱讀 182評論 0 1
  • 皎潔的月光 灑在你我臉上 諾大的操場 唯有你我背對背 你仰望星空 我守望你 記憶你的眼神 尋找—永恒 晚風兮兮 樹...
    一號的祈禱閱讀 207評論 0 0
  • 有時,會很迷茫。不知該做什么,不知該說什么,亦不知,此刻的內心獨白是什么。 三月,溫暖卻帶著絲絲的涼意,這種感...
    小辣雞的巴扎黑閱讀 287評論 1 1

友情鏈接更多精彩內容