1. 程式人生 > 其它 >軟體設計原則

軟體設計原則

架構設計六大原則:

單一職責、開放封閉、里氏替換、最少知識、介面隔離、依賴倒置

將以上六大原則的英文首字母拼在一起就是SOLID(穩定的),所以也稱為SOLID原則。

一、單一職責原則

永遠不應該有多於一個原因來改變某個類。

理解:對於一個類而言,應該僅有一個引起它變化的原因。

二、開放封閉原則

軟體實體擴充套件應該是開發的,但對於修改應該是封閉的。

理解:對擴充套件開放,對修改封閉。可以去擴充套件類,但不要去修改類。

三、里氏替換原則

理解:父類一定能夠被子類替換。

四、最少知識原則

只與你最直接的物件交流。

理解:高內聚,低耦合。做系統設計時,儘量減少依賴關係。

五、介面隔離原則

一個類與另一個類之間的依賴性,應該依賴於儘可能小的介面。

理解:不要對外暴露沒有實際意義的介面。使用者不應該依賴它不需要的介面。

六、依賴倒置原則

高層模組不應該依賴於低層模組,它們應該依賴於抽象。抽象不應該依賴於細節,細節應該依賴於抽象。

理解:應該面向介面程式設計,不應該面向實現類程式設計。

其他原則:

組合/聚合複用原則:當要擴充套件類的功能時,優先考慮使用組合,而不是繼承。

無環依賴原則:A依賴B,B依賴C,C依賴A,此時出現迴圈依賴,設計中避免該問題,可以通過引入“中介者模式”解決。

共同封裝原則:應該將易變的類放在同一個包裡,將變化隔離出來。該原則時“開放封閉原則”的衍生。

共用重用原則:如果重用了包中的一個類,那麼也就相當於重用了包中的所有類,我們要儘可能減小包的大小。

好萊塢原則:控制反轉、依賴注入。不需要主動建立物件,而是由容器幫我們來建立並管理這些物件。

保持它的簡單與傻瓜:保持系統介面簡潔,功能實用,操作方便。

關注點分離:將一個複雜的問題分離為多個簡單的問題,然後逐個解決。

你不需要它:不要一開始就把系統設計得非常複雜,不要陷入過度設計的深淵,讓系統足夠簡單,而又不失擴充套件性。

放棄安逸,持續努力——成長