七大軟體設計原則

2021-10-22 23:50:19 字數 1744 閱讀 1693

1、開閉原則定義:乙個軟體實體,如類、模組和函式應該對擴充套件開放,對修改關閉用抽象構建框架,用實現擴充套件細節 優點:提高軟體系統的可復用性及可維護性

核心就是物件導向程式設計,我們盡量進行擴充套件,而不是去修改。

2、依賴倒置原則定義

定義:高層模組不應該依賴底層模組,二者都應該依賴其抽象,抽象不應該依賴細節;細節應該依賴抽象

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

優點:可以減少類間的耦合性、提高系統穩定性,提高**可讀性和可維護性,可降低修改程式所造成的風險

核心面向介面程式設計,面向抽象程式設計,將例項物件通過介面傳入

3、單一職責原則

定義:不要存在多於乙個導致類變更的原因。乙個類、介面、方法只負責一項職責

優點:降低類的複雜度、提高類的可讀性、提高系統的可維護性、降低變更引起的風險

核心就是專業的人做專業事情

4、介面隔離原則

定義:用多個專門的介面,而不是使用單一的總介面,客戶端不應該依賴它不需要的介面

注意:乙個類對應乙個類的依賴應該建立在最小的介面上,建立單一介面,不要建立龐大的解耦

盡量細化介面,介面中的方法盡量少。

優點:高內聚、低耦合的設計思想,從而使得類具有很好的可讀性,可擴充套件性和可維護性

主要就是抽取,解耦,不冗餘

5、迪公尺特法則

定義:乙個物件應該對其他物件保持最少的了解,又叫最少知道原則,盡量降低類與類之間的耦合

優點:降低類之間的耦合

6、黎克特制替換原則

定義:父類可以出現的地方,子類也可以出現;反過來不可以

引申意義:子類可以擴充套件父類的功能,但是不能改變父類原有的功能。

含義1:子類可以實現父類的抽象方法,但不能覆蓋父類的非抽象方法。

含義2:子類中可以增加自己特有的方法。

含義3:當子類的方法過載父類的方法時,方法的前置條件要比父類輸入引數更加嚴格

優點1:約束繼承氾濫,開閉原則的一種體現

優點2:加強程式的健壯性,同時變更時也可以有更好的相容性和擴充套件性,降低需求變更時的風險性

當呼叫resize(square)時,沒有setheight,所以更為嚴格,這裡只是裡式替換的一種體現。

7、合成復用原則

定義:盡量使用物件組合、聚合、而不是繼承關係達到軟體**復用的目的

優點:可以使系統更加靈活,降低類和類之間的耦合度,乙個類的變化對其他造成的影響相對較少

七大軟體設計原則

定義 乙個軟體實體如類 模組和函式應該對擴充套件開放,對修改關閉。用抽象構建框架,用實現擴充套件細節。優點 提高軟體系統的可復用性及可維護性 我的理解 原來的程式功能不能夠去改變,如果要修改一些資料,就繼承這個類對其進行修改。不能修改原來的 如果修改可能會造成其他引用這個類的功能出現錯誤。定義 高層...

菜鳥的架構學習之路 七大軟體設計原則

對於個人而言 無外乎使自己的 高內聚低耦合 冗餘低 可復用,開發效率高,別人用半個小時寫完的東西,你十分鐘就搞定。公升職加薪 對於公司架構而言 縮短開發周期,可維護性強,可擴充套件性強。概括一句話就是使用最少的錢,得到最優質的產品。提高軟體系統的可維護性和可復用性,增加軟體的可擴充套件性和靈活性,從...

軟體設計原則(七大原則)

本片是自己在工作閒餘時間學習軟體設計模式所獲,在這裡歸納總結,如有不足請多多指教 說到軟體設計原則,可能很多人都會和軟體設計模式混淆,尤其是對剛工作不久的童鞋,其實軟體設計原則只是我們在軟體設計中對軟體架構,各模組之間松耦合,可重用性的一種總結的抽象。而軟體設計模式傾向於軟體架構方面,是站在全域性看...