設計模式七大原則(學習筆記)

設計模式七大原則

  1. 單一職責原則編程

    • 核心設計模式

      一個類只負責一項職責框架

    • 優勢ide

      1. 下降類的複雜度
      2. 提升類的可讀性和可維護性
      3. 下降變動引發的風險
      4. 若是邏輯比較簡單,能夠在方法上遵照單一職責,下降代碼量
    • 實例工具

      1. 交通工具測試

        分爲輪船,飛機、汽車。每一個類實現一個職責設計

      2. DAO類code

        一個DAO負責一個表的增刪改查。對象

    • 代碼繼承

      代碼部分參考了尚硅谷韓順平老師的內容。

      /**
      * @program:design_pattern
      * @descript:公路
      * @author: luyongjian746
      * @create: 2020-02-11
      */
      public class Road {
      
         public void run(String vehicle) {
             System.out.println(vehicle + "在公路上跑");
         }
      }
      /**
        * @program:design_pattern
        * @descript:天空
        * @author: luyongjian746
        * @create: 2020-02-11
        */
       public class Sky {
      
           public void run(String vehicle) {
               System.out.println(vehicle + "在空中飛");
           }
       }
      /**
      * @program:design_pattern
      * @descript:海
      * @author: luyongjian746
      * @create: 2020-02-11
      */
      public class Sea {
      
         public void run(String vehicle) {
             System.out.println(vehicle + "在海中航行");
         }
      }
      /**
      * @program:design_pattern
      * @descript:測試
      * @author: luyongjian746
      * @create: 2020-02-11
      */
      public class Test {
      
         public static void main(String[] args) {
             Road road = new Road();
             road.run("汽車");
      
             Sky sky = new Sky();
             sky.run("飛機");
      
             Sea sea = new Sea();
             sea.run("輪船");
         }
      }

      結果:

      汽車在公路上跑
      飛機在空中飛
      輪船在海中航行
  2. 接口隔離原則

    • 核心

      客戶端不該該依賴於他不須要的接口。即一個類對另一個類的依賴,應該創建在最小的接口上。

      將大接口拆解成多個小的接口。

    • 優勢

    • 實例

    • 代碼
  3. 依賴倒置原則

    • 核心
      1. 高層模塊不該該依賴底層模塊。兩者都應該依賴其抽象。
      2. 抽象不該該依賴細節,細節應該依賴其抽象。
      3. 核心爲面向接口編程。
    • 優勢
    • 實例
    • 代碼
  4. 裏式替換原則

    • 核心

      子類繼承父類時儘可能不要重寫父類的方法。

    • 優勢

    • 實例

    • 代碼
  5. 開閉原則

    • 核心

      對擴展開放,對修改關閉。用抽象構建框架,用實現擴展細節。

    • 優勢

    • 實例

    • 代碼
  6. 迪米特法則

    • 核心

      一個類應該對其餘對象保持最小的瞭解。

      若是不是直接朋友,在一個方法中出現了其餘類的局部變量,就違反了迪米特法則。

      直接朋友是指,某方法的參數,返回值所使用的類,則此類爲該方法所屬類的直接朋友。

    • 優勢

    • 實例

    • 代碼
  7. 合成複用原則

    • 核心

      儘可能使用合成或複用代替繼承。

      合成:A類做爲成員變量或者參數的形式出如今B類

      複用:A類以new A()的方式出如今B類中

    • 優勢

    • 實例

    • 代碼
相關文章
相關標籤/搜索