軟件架構設計的七大原則

1、開閉原則(是面向對象開發中最基礎的原則,它指導創建更加穩定靈活的系統)編程

  開閉原則是對擴展和修改行爲的一個原則,指的是軟件中的函數、類、模塊應該對擴展開放,對修改關閉。強調的是用抽象構建框架,用實現擴展細節。經常使用於解決的問題如:更新版本時,儘可能在不修改源代碼,但增長新功能。架構

2、依賴倒置框架

  依賴倒置是指設計系統代碼結構時,高層模塊不依賴底層模塊,它們都應依賴於其抽象。細節應該依賴抽象。經過依賴倒置,可減小系統之間模塊的耦合性,提升系統的穩定性,提升系統的可讀性與可維護性,下降修改程序帶來的風險。函數

  ps:以抽象爲基準設計的架構要比以細節爲基準設計的架構穩定不少。因此在拿到需求時,要面向接口編程,先頂層再細節來設計代碼結構。設計

       依賴有依賴注入(最經常使用)、構造方法注入(單例不可用)、setter注入(單例多用)。對象

3、單一職責原則繼承

  是指一個類只負責一個功能,不要存在多餘一個致使類變動的緣由。假設一個類負責兩個職責,修改一個可能會影響另外一個功能發生故障。只負責一個類可下降類的複雜度,提升類的可讀性,提升系統的可維護性,下降變動引發的風險。接口

4、接口隔離原則開發

  是指用多個專門的接口,而不是使用單一的總接口,客戶端不該該依賴他不須要的接口。這個原則指導咱們在設計接口時應注意如下幾點:基礎

  1.一個類對一個類的依賴應該創建在最小的基礎上

  2.創建單一接口,不該創建臃腫的接口。

  3.細化接口功能,每一個接口內方法要儘可能少(不是越少越好,要適度)

  接口隔離原則符合咱們所說的「高內聚,低耦合」的思想,從而使類具備很好的可維護性、可讀性、可擴展性。咱們在設計接口時,要多花時間去思考業務模型,包括之後可能要修改的還要去作一些預判。因此,對於抽象,對業務模型的理解是最重要的。

5、迪米特法則

   是指一個對象應該保持對其餘對象最少的瞭解,也叫最少了解法則,儘可能下降類與類之間的耦合。它強調之和朋友交流,不和陌生人說話。如類中的成員變量、函數參數、函數返回值都是朋友,函數內部的對象是陌生人。

6、里氏替換原則

  里氏替換原則能夠理解爲一個軟件實體若是能適用父類的話,必定也能適用子類。全部能引用父類的地方都能透明的使用子類對象。子類可替換父類對象而使程序邏輯不變。引伸爲:子類可擴展父類的方法,但不能覆蓋父類原有的功能。

  總結爲:1.子類能夠實現父類的抽象方法,但不能父類的非抽象方法。

      2.子類可增長本身特有的方法。

      3.當子類的方法重載父類的方法時,子類的前置參數(入參)相比父類更寬鬆。

      4.當子類的方法重載父類的方法時,子類的後置參數(函數返回值)相比父類更嚴格或相等。

7、合成複用原則

  指儘可能使用對象組合、聚合,而不是繼承來實現軟件複用的目的。這樣可使類更加靈活、下降類與類之間的耦合度。

  繼承叫白箱複用,會將父類的實現細節所有暴露給子類。合成複用叫黑箱複用,對類之外是沒法獲取到實現細節的。

總結:

  咱們在寫代碼時,要根據實際狀況(人力、時間、成本)綜合考慮,不需刻意追求完美,要在適當的場景考慮設計原則,體現的是一種平衡取捨,來幫助咱們設計出更優雅的代碼結構。

相關文章
相關標籤/搜索