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

資訊專(zhuān)欄INFORMATION COLUMN

抽象工廠模式(Abstract Factory)

mayaohua / 1262人閱讀

摘要:抽象工廠模式概念抽象工廠模式是工廠模式的升級(jí),用來(lái)創(chuàng)建一組相關(guān)或相互依賴的對(duì)象。

抽象工廠模式

概念
抽象工廠模式是工廠模式的升級(jí),用來(lái)創(chuàng)建一組相關(guān)或相互依賴的對(duì)象。

角色
1.抽象工廠角色
2.具體工廠角色
3.產(chǎn)品接口或抽象產(chǎn)品角色
4.具體產(chǎn)品角色

角色對(duì)應(yīng)關(guān)系
1.多個(gè)具體工廠繼承自抽象工廠;
2.多個(gè)具體產(chǎn)品繼承自抽象產(chǎn)品或?qū)崿F(xiàn)產(chǎn)品接口;
3.每個(gè)具體工廠可產(chǎn)生多個(gè)具體產(chǎn)品。

實(shí)現(xiàn)過(guò)程

   產(chǎn)品接口

    public interface Product1 {
    }

    public interface Product2 {
    }    
    具體產(chǎn)品類(lèi)
    public class ProductA1 implements Product1 {

        public ProductA1(){
            System.out.println("Product : " + this.getClass().getSimpleName());
        }
    
    }
    
    public class ProductA2 implements Product2 {

        public ProductA2(){
            System.out.println("Product : " + this.getClass().getSimpleName());
        }
    
    }
    定義抽象工廠
    public abstract class AbstractFactory {

        public abstract Product1 create1();
    
        public abstract Product2 create2();
    }

    產(chǎn)生產(chǎn)品的具體工廠
    public class FactoryA extends AbstractFactory{

        @Override
        public Product1 create1() {
            return new ProductA1();
        }
    
        @Override
        public Product2 create2() {
            return new ProductA2();
        }
    }
    調(diào)用方法
     public static void main(String[] args) {
        AbstractFactory abstractFactory = new FactoryA();
        abstractFactory.create1();
        abstractFactory.create2();

    }
    輸出
    Product : ProductA1
    Product : ProductA2

抽象工廠與工廠方法
1.抽象工廠模式適用于改變產(chǎn)品系列,對(duì)產(chǎn)品系列的改變符合開(kāi)閉原則;
2.工廠方法模式適用于改變產(chǎn)品類(lèi)別。

源碼

https://github.com/Seasons20/DisignPattern.git

END

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

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

相關(guān)文章

  • PHP設(shè)計(jì)模式(三)抽象工廠模式Abstract Factory

    摘要:支持增加任意產(chǎn)品抽象工廠用來(lái)生產(chǎn)不同產(chǎn)品族的全部產(chǎn)品。對(duì)于增加新的產(chǎn)品,無(wú)能為力支持增加產(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
  • 工廠相關(guān)的設(shè)計(jì)模式之間的關(guān)系

    摘要:在標(biāo)準(zhǔn)的種設(shè)計(jì)模式中,與工廠相關(guān)的模式有種工廠方法模式和抽象工廠模式。在這里,要區(qū)分清楚的是工廠方法模式強(qiáng)調(diào)的是方法,而抽象工廠模式強(qiáng)調(diào)的是工廠,這是兩個(gè)相關(guān)但又不相同的概念,就像做飯和廚房的區(qū)別,一個(gè)是談動(dòng)作,一個(gè)是談空間。 在標(biāo)準(zhǔn)的23種設(shè)計(jì)模式中,與工廠相關(guān)的模式有2種:工廠方法模式(Factory method pattern)和抽象工廠模式(Abstract factory ...

    aaron 評(píng)論0 收藏0
  • PHP設(shè)計(jì)模式(二)工廠方法模式Factory Method)

    摘要:對(duì)于這個(gè)問(wèn)題,接下來(lái)的工廠方法模式可以解決這個(gè)問(wèn)題。二工廠方法模式的優(yōu)點(diǎn)擁有良好的封裝性,代碼結(jié)構(gòu)清晰。參考系列源地址系列目錄設(shè)計(jì)模式概述設(shè)計(jì)模式一簡(jiǎn)單工廠模式設(shè)計(jì)模式二工廠方法模式設(shè)計(jì)模式三抽象工廠模式設(shè)計(jì)模式四單例模式 簡(jiǎn)單工廠簡(jiǎn)述: 簡(jiǎn)單工廠模式實(shí)現(xiàn)了產(chǎn)品類(lèi)的代碼跟客戶端代碼分離,但會(huì)有一個(gè)問(wèn)題,優(yōu)秀的代碼是符合開(kāi)閉原則如果你要加一個(gè)C類(lèi)產(chǎn)品,你就要修改工廠類(lèi)里面的代碼,也就是說(shuō)...

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

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

0條評(píng)論

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