java23種設計模式(二)抽象工廠模式

  • 2019 年 10 月 21 日
  • 筆記

我們接著上一章的工廠方法模式繼續學習一下抽象工廠模式。
抽象工廠模式:在工廠模式中,如果有多個產品,則就是抽象工廠模式。
例子:
有一個工廠開了兩個子公司,專門用來生產電腦配件鍵盤和滑鼠,一個是聯想工廠則生產聯想的產品,另一個是宏碁工廠則生產宏碁的產品。
程式碼如下:
1、工廠介面(可以生產滑鼠和鍵盤)

public interface Factory {       // 生產滑鼠      Mouse createMouse();        // 生產鍵盤      KeyBoard createKeyBoard();  }

2、聯想工廠(生產聯想滑鼠和鍵盤)

public class LenovoFactory implements Factory {      @Override      public Mouse createMouse() {          return new LenovoMouse();      }        @Override      public KeyBoard createKeyBoard() {          return new LenovoKeyBoard();      }  }

3、宏碁工廠(生產宏碁滑鼠和鍵盤)

public class AcerFactory implements Factory {      @Override      public Mouse createMouse() {          return new AcerMouse();      }        @Override      public KeyBoard createKeyBoard() {          return new AcerKeyBoard();      }  }

4、鍵盤介面

public interface KeyBoard {        void getName();  }

5、聯想鍵盤實現類

public class LenovoKeyBoard implements KeyBoard {      @Override      public void getName() {          System.out.println("這個是聯想鍵盤");      }  }

6、宏碁鍵盤實現類

public class AcerKeyBoard implements KeyBoard {      @Override      public void getName() {          System.out.println("這個是宏碁鍵盤");      }  }

7、滑鼠介面

public interface Mouse {        void getName();  }

8、聯想滑鼠介面

public class LenovoMouse implements Mouse {      @Override      public void getName() {          System.out.println("這個是聯想滑鼠");      }  }

9、宏碁滑鼠介面

public class AcerMouse implements Mouse {      @Override      public void getName() {          System.out.println("這個是宏碁滑鼠");      }  }

10、客戶端(可以在聯想工廠買聯想滑鼠和鍵盤,也可以在宏碁工廠買宏碁生產的滑鼠和鍵盤)

@SpringBootTest  class FactoryApplicationTests {      @Test      void abstractF(){            LenovoFactory lenovoFactory = new LenovoFactory();          lenovoFactory.createKeyBoard().getName();          lenovoFactory.createMouse().getName();            AcerFactory acerFactory = new AcerFactory();          acerFactory.createKeyBoard().getName();          acerFactory.createMouse().getName();      }  }

總結:
(1)增加xx工廠:創建xx工廠,繼承工廠介面,然後創建xx滑鼠繼承滑鼠介面,創建xx鍵盤繼承鍵盤介面即可。
(2)增加音響產品:首先創建音響介面,然後分別創建聯想音響和宏碁音響實現類實現音響介面。然後再工廠介面中增加創建音響的方法,在聯想工廠和宏碁工廠分別實現自家音響的創建。

如果文章對您有幫助,請記得點贊關注喲~
歡迎大家關注我的公眾號<情系IT>,每日技術推送文章供大家學習參考。