成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

設(shè)計(jì)模式——抽象工廠

KoreyLee / 399人閱讀

摘要:簡(jiǎn)介抽象工廠是一種創(chuàng)建型模式,它提代一個(gè)創(chuàng)建一系列相關(guān)或相互依賴對(duì)象的接口,而無需指定它們具體的類。類圖是聲明了創(chuàng)建抽象產(chǎn)品的抽象工廠,是具體的工廠,實(shí)現(xiàn)了創(chuàng)建具體產(chǎn)品。

1. 簡(jiǎn)介

??抽象工廠是一種創(chuàng)建型模式,它提代一個(gè)創(chuàng)建一系列相關(guān)或相互依賴對(duì)象的接口,而無需指定它們具體的類。抽象工廠允許調(diào)用者使用抽象的接口創(chuàng)建一組相關(guān)的產(chǎn)口,而不需要關(guān)心它們具體的產(chǎn)品,這樣就從具體的產(chǎn)口中解耦出來,依賴抽象而不是依賴具體類。

2. UML類圖

??AbstractFactory是聲明了創(chuàng)建抽象產(chǎn)品的抽象工廠,ConcreteFactory是具體的工廠,實(shí)現(xiàn)了創(chuàng)建具體產(chǎn)品。AbstractProduct是一類產(chǎn)品的抽象接口,Product是具體的產(chǎn)品。

3. 實(shí)例

抽象產(chǎn)品A

public interface AbstractProductA {
    void showProductA();
}

具體產(chǎn)品A

public class ProductA1 implements AbstractProductA {
    public void showProductA() {
        System.out.println("ProductA1");
    }
}

public class ProductA2 implements AbstractProductB {
    public void showProductA() {
        System.out.println("ProductA2");
    }
}

抽象產(chǎn)品B

public interface AbstractProductB {
    void showProductB();
}

具體產(chǎn)品B

public class ProductB1 implements AbstractProductB {
    public void showProductB() {
        System.out.println("ProductB1");
    }
}

public class ProductB2 implements AbstractProductB {
    public void showProductB() {
        System.out.println("ProductB2");
    }
}

抽象工廠

public interface AbstractFactory {
    AbstractProductA createProductA();
    AbstractProductB createProductB();
}

具體工廠

public class Factory1 implements AbstractFactory {
    public AbstractProductA createProductA() {
        return new ProductA1();
    }
    
    public AbstractProductB createProductB() {
        return new ProductB1();
    }
}

public class Factory2 implements AbstractFactory {
    public AbstractProductA createProductA() {
        return new ProductA2();
    }
    
    public AbstractProductB createProductB() {
        return new ProductB2();
    }
}

測(cè)試

public class Test {
    public static void main(String[] args) {
        AbstractFactory factory = new Factory1();
        AbstractProductA productA = factory.createProductA();
        productA.showProductA();
        
        AbstractProductB productB = factory.createProductB();
        productB.showProductB();
    }
}

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/76504.html

相關(guān)文章

  • JavaScript工廠模式

    摘要:基于工廠角色和產(chǎn)品角色的多態(tài)性設(shè)計(jì)是工廠方法模式的關(guān)鍵。工廠方法模式之所以又被稱為多態(tài)工廠模式,是因?yàn)樗械木唧w工廠類都具有同一抽象父類。工廠方法模式總結(jié)工廠方法模式是簡(jiǎn)單工廠模式的進(jìn)一步抽象和推廣。 JavaScript工廠模式 首先需要說一下工廠模式。工廠模式根據(jù)抽象程度的不同分為三種 簡(jiǎn)單工廠模式 工廠方法模式 抽象工廠模式 1.簡(jiǎn)單工廠模式 簡(jiǎn)單工廠模式:又稱為靜態(tài)工廠方法...

    oujie 評(píng)論0 收藏0
  • js常用設(shè)計(jì)模式實(shí)現(xiàn)(二)工廠模式抽象工廠模式

    摘要:抽象工廠模式可以向客戶端提供一個(gè)接口,使客戶端在不必指定產(chǎn)品的具體的情況下,創(chuàng)建多個(gè)產(chǎn)品族中的產(chǎn)品對(duì)象。前邊的兩個(gè)都是直接生產(chǎn)實(shí)例的,開始以為抽象工廠也是但是后來發(fā)現(xiàn)抽象工廠更像是生產(chǎn)工廠,其實(shí)抽象工廠其實(shí)是實(shí)現(xiàn)子類繼承父類的方法。 創(chuàng)建型模式 創(chuàng)建型模式是對(duì)一個(gè)類的實(shí)例化過程進(jìn)行了抽象,把對(duì)象的創(chuàng)建和對(duì)象的使用進(jìn)行了分離 上一篇介紹了下單例模式,這一篇介紹一下工廠模式和抽象工廠模式,...

    meteor199 評(píng)論0 收藏0
  • Java 設(shè)計(jì)模式 簡(jiǎn)單工廠 工廠模式 抽象工廠

    摘要:簡(jiǎn)單工廠,工廠模式和抽象工廠。不要認(rèn)為簡(jiǎn)單工廠是用就覺得一無是處,也不要覺得抽象工廠比較高大上就到處套。 工廠模式,實(shí)際上也會(huì)根據(jù)業(yè)務(wù)情景不同會(huì)有不同的實(shí)現(xiàn)方式。一般分為3種。簡(jiǎn)單工廠,工廠模式和抽象工廠。顧名思義,這三種從簡(jiǎn)單到抽象,名稱越來越高大上,實(shí)現(xiàn)方式肯定是越來越復(fù)雜 結(jié)論1:三種工廠的實(shí)現(xiàn)越來越復(fù)雜 簡(jiǎn)單工廠 public class Factory { // 定義...

    CocoaChina 評(píng)論0 收藏0
  • PHP高級(jí)特性-反射Reflection以及Factory工廠設(shè)計(jì)模式的結(jié)合使用[代碼實(shí)例]

    摘要:反射提供給面向?qū)ο缶幊炭梢宰允〉哪芰?,即反射。在?jiǎn)單工廠模式中,根據(jù)傳遞的參數(shù)來返回不同的類的實(shí)例簡(jiǎn)單工廠模式又稱為靜態(tài)工廠方法模式。也就是簡(jiǎn)單工廠模式工廠工廠類。PHP高級(jí)特性-反射以及工廠設(shè)計(jì)模式的結(jié)合使用 [結(jié)合 Laravel-Admin 代碼實(shí)例講解]利用反射來實(shí)現(xiàn)工廠模式的生產(chǎn)而無需創(chuàng)建特定的工廠類本文地址http://janrs.com/?p=833轉(zhuǎn)載無需經(jīng)過作者本人授權(quán)轉(zhuǎn)載...

    番茄西紅柿 評(píng)論0 收藏2637
  • PHP設(shè)計(jì)模式(三)抽象工廠模式(Abstract Factory)

    摘要:支持增加任意產(chǎn)品抽象工廠用來生產(chǎn)不同產(chǎn)品族的全部產(chǎn)品。對(duì)于增加新的產(chǎn)品,無能為力支持增加產(chǎn)品族參考系列源地址系列目錄設(shè)計(jì)模式概述設(shè)計(jì)模式一簡(jiǎn)單工廠模式設(shè)計(jì)模式二工廠方法模式設(shè)計(jì)模式三抽象工廠模式設(shè)計(jì)模式四單例模式 一、什么是抽象工廠模式 抽象工廠模式的用意為:給客戶端提供一個(gè)接口,可以創(chuàng)建多個(gè)產(chǎn)品族中的產(chǎn)品對(duì)象 ,而且使用抽象工廠模式還要滿足以下條件: 系統(tǒng)中有多個(gè)產(chǎn)品族,而系統(tǒng)一次...

    W_BinaryTree 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<