大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學(xué)習(xí)攻略 Java學(xué)習(xí) Java抽象工廠模式詳解

Java抽象工廠模式詳解

更新時間:2022-10-25 10:55:57 來源:動力節(jié)點 瀏覽2857次

抽象工廠設(shè)計模式示例

在本例中,我們將創(chuàng)建工廠方法設(shè)計模式的兩個實現(xiàn):AnimalFactory和Color Factory。

之后,我們將使用抽象工廠AbstractFactory 管理對它們的訪問:

首先,我們將創(chuàng)建一個Animal類家族,稍后將在我們的抽象工廠中使用它。

這是動物界面:

public interface Animal {
    String getAnimal();
    String makeSound();
}

和一個具體的實現(xiàn)Duck:

public class Duck implements Animal {
    @Override
    public String getAnimal() {
        return "Duck";
    }
    @Override
    public String makeSound() {
        return "Squeks";
    }
}

此外,我們可以完全以這種方式創(chuàng)建Animal接口(如Dog、Bear等)的更具體的實現(xiàn)。

抽象工廠處理依賴對象的族??紤]到這一點,我們將引入另外一種顏色系列作為具有一些實現(xiàn)(白色、棕色……)的接口。

我們現(xiàn)在將跳過實際代碼,但可以在此處找到。

現(xiàn)在我們已經(jīng)準(zhǔn)備好了多個系列,我們可以為它們創(chuàng)建一個AbstractFactory接口:

public interface AbstractFactory<T> {
    T create(String animalType) ;
}

接下來,我們將使用我們在上一節(jié)中討論的工廠方法設(shè)計模式來實現(xiàn)AnimalFactory :

public class AnimalFactory implements AbstractFactory<Animal> {
    @Override
    public Animal create(String animalType) {
        if ("Dog".equalsIgnoreCase(animalType)) {
            return new Dog();
        } else if ("Duck".equalsIgnoreCase(animalType)) {
            return new Duck();
        }
        return null;
    }
}

同樣,我們可以使用相同的設(shè)計模式為Color接口實現(xiàn)一個工廠。

設(shè)置完所有這些后,我們將創(chuàng)建一個FactoryProvider類,該類將為我們提供AnimalFactory或ColorFactory的實現(xiàn),具體取決于我們提供給getFactory()方法的參數(shù):

public class FactoryProvider {
    public static AbstractFactory getFactory(String choice){        
        if("Animal".equalsIgnoreCase(choice)){
            return new AnimalFactory();
        }
        else if("Color".equalsIgnoreCase(choice)){
            return new ColorFactory();
        }        
        return null;
    }
}

何時使用抽象工廠模式:

客戶端獨立于我們?nèi)绾卧谙到y(tǒng)中創(chuàng)建和組合對象

該系統(tǒng)由多個對象族組成,這些族旨在一起使用

我們需要一個運行時值來構(gòu)造一個特定的依賴項

雖然該模式在創(chuàng)建預(yù)定義對象時非常有用,但添加新對象可能具有挑戰(zhàn)性。要支持新類型的對象,需要更改AbstractFactory類及其所有子類。

提交申請后,顧問老師會電話與您溝通安排學(xué)習(xí)

免費課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 殴美毛片| 久久机热一这里只精品 | 精品国产福利在线观看一区 | 看全色黄大色黄大片 视 | 成人日韩精品 | 日本无吗中文字幕免费婷婷 | 97视频在线 | 在线观看精品国语偷拍 | 久久精品99香蕉国产 | 亚洲人成绝费网站色ww | 狠狠色噜噜狠狠狠狠网站视频 | 毛片网络 | 九九热精品 | 国产成人一区二区视频在线观看 | 国产国产精品人在线观看 | 国产人成午夜免视频网站 | jizz中国zz女女18 | 久久精品影视 | 久久伊人中文字幕 | 四虎综合九九色九九综合色 | 五月婷在线视频 | 国产成人精品视频一区二区不卡 | 国产美女免费国产 | 亚洲综合狠狠99婷婷 | 九九在线精品视频 | 国产人成午夜免视频网站 | 国产精品www视频免费看 | 久久精品国产精品青草图片 | 亚洲图片二区 | 操bb影院| 欧美ⅹxxxx视频 | 日韩中文一区 | 宅男在线看片 | 国语精品视频在线观看不卡 | 视频三区精品中文字幕 | 国产91成人精品亚洲精品 | 日本不卡专区 | 国产成人精品一区二区仙踪林 | 国产精品久久久久久一区二区三区 | 国产精品综合一区二区三区 | 国产精品毛片va一区二区三区 |