架構設計基本原則

      本文章大部分內容來源於咕泡Tom老師的Srping5核心原理,我這裏只是做一個記錄方便日後回顧,看不懂的朋友最好去看下原書。

一. 開閉原則

       基本概念:指一個軟件實體(如類、模塊、和函數)應對擴展開放,對修改關閉。強調用抽象構建框架,用實現擴展細節。核心思想就是面向抽象編程。 

       舉個現實中的例子:你每天需要工作8個小時的規定是關閉的,但你上下班的時間可以是開放的。

       代碼應用:將公用的方法和業務邏輯封裝到一個接口或抽象類中,將不同的功能和業務邏輯單獨實現在新的實現類中,而不去修改原因的屬性和邏輯.

二.依賴倒置原則

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

 

注:以抽象爲基準比以細節爲基準搭建起來的架構要穩定得多,因此在拿到需求之後,要面向接口編程,先頂層再細節地設
計代碼結構。

三.單一職責原則

      基本概念:不要存在多於一個導致類變更的原因假設我們有一個類負責兩個職責,一旦發生需求變更,修改其中一個職責的邏輯代碼,有可能導致另一個職責的功能發生故障。

四.接口隔離原則

      基本概念:用多個專門的接口,而不使用單一的總接口,客戶端不應該依賴它不需要的接口。這個原則指導我們在設計接口時應當注意以下幾點:
    (1)一個類對另一個類的依賴應該建立在最小的接口之上。
    (2)建立單一接口,不要建立龐大臃腫的接口。
    (3)儘量細化接口,接口中的方法儘量少(不是越少越好,一定要適度)

五.迪米特原則

       基本概念:是指一個對象應該對其他對象保持最少的瞭解,又叫最少知道原則,儘量降低類與類之間的耦合度。

 六.里氏替換原則

       基本概念:原本的定義比較抽象,不再贅述。可以理解爲一個軟件實體如果適用於一個父類,那麼一定適用於其子類,所有
引用父類的地方必須能透明地使用其子類的對象,子類對象能夠替換父類對象,而程序邏輯不變。根據這個理解,引申含義爲:子類可以擴展父類的功能,但不能改變父類原有的功能。
(1)子類可以實現父類的抽象方法,但不能覆蓋父類的非抽象方法。
(2)子類可以增加自己特有的方法。
(3)當子類的方法重載父類的方法時,方法的前置條件(即方法的輸入/入參)要比父類方法的輸入參數更寬鬆。
(4)當子類的方法實現父類的方法時(重寫/重載或實現抽象方法),方法的後置條件(即方法的輸出/返回值)要比父類更嚴格或
        與父類一樣

七.合成複用原則

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

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