亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么用Java代碼實現抽象工廠模式

發布時間:2022-04-07 10:02:40 來源:億速云 閱讀:141 作者:iii 欄目:開發技術

這篇文章主要介紹“怎么用Java代碼實現抽象工廠模式”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“怎么用Java代碼實現抽象工廠模式”文章能幫助大家解決問題。

解決工廠方法模式的問題:一個具體工廠只能創建一類產品,而實際過程中一個工廠往往需要生成很多的產品,這種可以采用抽象工廠模式。

1. 抽象工廠模式解決

定義:提供一個創建一系列相關或者互相依賴對象的接口,無需指定他們的具體的類,具體的工廠負責實現具體的產品的實例。使一個工廠可以產生多個產品。

2. 抽象工廠類圖UML

怎么用Java代碼實現抽象工廠模式

3. 抽象工廠模式的主要角色

抽象工廠(AbstractFactory):提供了創建產品的接口,包含了多個創建產品的接口方法,可以創建多個不同等級的產品

具體工廠(ConcreteFactory):實現了抽象工廠定義的方法,完成具體產品的創建

抽象產品(Product):定義了產品的規范,描述產品的主要特征和性能

具體產品(ConcreteProduct):實現了抽象產品的定義的方法,有具體工廠來創建產品,具體工廠和具體產品一對多關系

4. 代碼實現

抽象工廠方法實現:

public interface AbstractFactory {
    public Product1 createProduct1();
    public Product2 createProduct2();
}

public class ConcreteFactory1 implements AbstractFactory {
    @Override
    public Product1 createProduct1() {
        System.out.println("具體工廠1產生具體產品1...");
        return new ConcreteProduct1();
    }

    @Override
    public Product2 createProduct2() {
        System.out.println("具體工廠1產生具體產品2...");
        return new ConcreteProduct2();
    }
}

使用步驟:

  • 創建抽象產品類,定義產品的公共方法

  • 創建具體產品類(實現抽象產品接口),定義生成的具體產品

  • 創建抽象工廠類,定義具體工廠的公共接口,一個工廠類可以創建不同等級的產品

  • 創建具體工廠類,定義創建對應具體產品實例的方法

  • 調用方調用具體的工廠類的方法,從而創建不同具體產品的實例

5. 抽象工廠方法再探究

解決問題:每個工廠只能創建一類產品,即是工廠方法的缺點

6. 優缺點

優點:

  • 可以在工廠類內部對產品中相關聯的多級產品共同管理,而不必專門引入新的類來管理

  • 抽象工廠增加了程序的可擴展性,當新增一個新的產品族時,不需要修改源代碼,滿足開閉原則

缺點:

  • 當產品族新增一個產品類型時,所有的工廠類都需要進行修改,增加了系統的抽象性和理解難度

7. 適用示例

王者榮耀中提供了很多的英雄,英雄分為射手、輔助、打野、坦克等職業,不同的職業對應的技能,屬性不同。聲明坦克、法師、刺客等多個工廠子類,每個工廠可以生產相應技能的應用。

關于“怎么用Java代碼實現抽象工廠模式”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

岐山县| 长兴县| 鱼台县| 水富县| 紫金县| 永嘉县| 托里县| 连南| 项城市| 山西省| 黔江区| 东丰县| 仪陇县| 营口市| 黎川县| 息烽县| 宝坻区| 怀安县| 浦东新区| 襄城县| 大冶市| 广昌县| 乌审旗| 喀喇沁旗| 前郭尔| 合阳县| 鄢陵县| 东乌珠穆沁旗| 炎陵县| 临江市| 江口县| 上高县| 汉沽区| 偃师市| 新乐市| 安阳县| 丹凤县| 分宜县| 林周县| 苏尼特右旗| 固原市|