<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 工廠方法模式 工廠方法模式可以在不改變原來代碼的情況下引入新的產品,滿足開閉原則、迪米特法則、依賴倒置法則和里氏替換原則。 &nbsp; ## 組成 1. 抽象工廠(Abstract Factory):提供了創建產品的接口,調用者通過它訪問具體工廠的工廠方法 newProduct() 來創建產品。 2. 具體工廠(ConcreteFactory):主要是實現抽象工廠中的抽象方法(newProduct),完成具體產品的創建。 3. 抽象產品(Product):定義了產品的規范,描述了產品的主要特性和功能。 4. 具體產品(ConcreteProduct):實現了抽象產品角色所定義的接口,由具體工廠來創建,**它同具體工廠之間一一對應**。 結構圖: :-: ![](https://img.kancloud.cn/90/f1/90f1d5123d6e8959d3ff18bd84cb35ec_750x340.png) 【圖片來源:http://c.biancheng.net/view/1348.html】 實現: ~~~ package FactoryMethod; public class AbstractFactoryTest { public static void main(String[] args) { try { Product a; AbstractFactory af; af = (AbstractFactory) ReadXML1.getObject(); a = af.newProduct(); a.show(); } catch (Exception e) { System.out.println(e.getMessage()); } } } //抽象產品:提供了產品的接口 interface Product { public void show(); } //具體產品1:實現抽象產品中的抽象方法 class ConcreteProduct1 implements Product { public void show() { System.out.println("具體產品1顯示..."); } } //具體產品2:實現抽象產品中的抽象方法 class ConcreteProduct2 implements Product { public void show() { System.out.println("具體產品2顯示..."); } } //抽象工廠:提供了廠品的生成方法 interface AbstractFactory { public Product newProduct(); } //具體工廠1:實現了廠品的生成方法 class ConcreteFactory1 implements AbstractFactory { public Product newProduct() { System.out.println("具體工廠1生成-->具體產品1..."); return new ConcreteProduct1(); } } //具體工廠2:實現了廠品的生成方法 class ConcreteFactory2 implements AbstractFactory { public Product newProduct() { System.out.println("具體工廠2生成-->具體產品2..."); return new ConcreteProduct2(); } } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看