爲什麼要學習軟件架構設計原則

   我們爲什麼要學習軟件架構設計原則?
   首先,我們要搞明白什麼是軟件架構設計原則?
軟件架構設計原則,一共有七個:

1、開閉原則

   開閉原則是指一個軟件實體如類,模塊和函數應該對擴展開放,對修改關閉。用抽象構建框架,用實現拓展細節。可以提高軟件系統的可複用性及可維護性。開閉原則,是面向對象設計中最基礎的設計原則。它指導我們如何建立穩定靈活的系統,如遇到產品迭代,需求變更的時候。在不改變原有代碼的情況下,通過新加一個類來實現變更邏輯從而達到產品的目的。
  優點:提高軟件系統的複用性和維護性。


2、依賴倒置原則
   

       依賴倒置原則是指設計代碼結構時,高層模塊不應該依賴底層模塊,二者都應該依賴 其抽象。抽象不應該依賴細節,細節應該依賴抽象。通過依賴倒置,可以減少類與類之間的耦合性,提高系統的穩定性,提高代碼的可讀性和可維護性,並能夠降低修改代碼所造成的風險。
      優點:可以減少類之間的耦合性,提高系統的穩定性,提高代碼的可讀性和可維護性,可以降低修改程序所造成的風險。
 

3、單一職責原則


        單一職責原則是指不要存在多餘一個導致類變更的原因。假設我們有一個Class負責兩個職責,一旦發送需求變更,修改其中一個職責的邏輯代碼,有可能會導致另一個職責的功能發生故障。這樣一來,這個Class存在兩個導致類變更的原因。如何解決這個問題呢?我們就要給兩個職責分別用兩個Class來實現,進行解耦。後期需求變更維護互不影響。這樣的設計可以降低累的複雜度,提高代碼的可讀性和系統的可維護性,降低變更引起的風險。總體來說就是一個Class/Interface/Method只負責一項職責。
       優點:降低類的複雜度,提高類的可讀性,提高系統的可維護性,降低變更引起的風險。

4、接口隔離原則


       接口隔離原則是指用多個專門的接口,而不是使用單一的總接口,客戶端不應該依賴它不需要的接口。這個原則知道我們在設計接口時應當注意一下幾點:
      1、一個類對一類的依賴應該建立在最小的接口之上;
      2、建立單一接口,不要建立龐大臃腫的接口;
      3、儘量細化接口,接口中的方法儘量少(不是越少越好,一定要適度)。
      接口隔離原則符合我們常說的高內聚低耦合的設計思想,從而使得類具有很好的可讀性、可擴展性和可維護性。我們在設計接口的時候,要花時間去思考,要考慮業務模型,包括以後有可能發生變更的地方還要做一些預判。所以,對於抽象,對業務模型的理解是非常重要的。

5、迪米特法則


        迪米特法則是指一個對象應該對其他對象保持最少了解,又叫最少知道原則,儘量降低降低類與類的耦合。迪米特法則主要強調只和朋友交流,不和陌生人說話。出現在成員變量、方法的輸入、輸出參數中的類都可以稱之爲成員朋友類,而出現在方法體內部的不屬於朋友類。
      優點:降低類之間的耦合
   

6、里氏替換原則


        里氏替換原則是指如果對每一個類型爲T1的對象o1,都有類型爲T2的對象o2,使得以T1定義的所有程序P在所有對象o1都替換成o2時,程序P的行爲沒有發生變化,那麼類型T2是類型T1的子類型。
       定義看上去還是比較抽象,我們重新理解一下,可以理解爲一個軟件實體如果適用一個父類的話,那一定是適用於其子類,所有引用父類的地方必須能透明地適用其子類的對象,子類對象能夠替換父類對象,而程序邏輯不變。根據這個理解,我們總結一下:
      引申含義:子類可以擴展父類的功能,但不能改變父類原有的功能。
      1、子類可以實現父類的抽象功能,但不能覆蓋父類的非抽象方法;
      2、子類中可以增加自己特有的方法;
      3、當子類的方法重載父類的方法時,方法的前置條件(即方法的輸入/入參)要比父類方法的輸入參數更寬鬆;
      4、當子類的方法實現父類的方法時(重寫/重載或實現抽象方法),方法的後置條件(即方法的輸
出/返回值)要比父類更嚴格或相等。
     優點:1、約束繼承氾濫,開閉原則的一種體現;
               2、加強程序的健壯性,同時變更時也可以做到非常好的兼容性,提高程序的維護性、擴展性。降低
需求變更時引入的風險。

 7、合成複用原則


        合成複用原則是指儘量使用對象組合(has-a)/聚合(contanis-a),而不是繼承關係達到軟件複用的目的。可以使系統更加靈活,降低類與類之間的耦合度,一個類的變化對其他類造成的影響相對較少。
        優點:可以使系統更加靈活,降低類與類之間的耦合。一個類的變化對其他類的影響較少。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章