美文网首页程序员地瓜哥的小屋
Java中的抽象工厂模式

Java中的抽象工厂模式

作者: CodingDGSun | 来源:发表于2021-12-28 09:30 被阅读0次

抽象工厂模式简介

  • 模式属于创建型模式,它提供了一种创建对象的最佳方式。
  • 抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。
  • 在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。
接口IComputerProduct
//电脑产品接口
public interface IComputerProduct {
    void start();

    void shutdown();
}
子类AComputer和BComputer
//A电脑
public class AComputer implements IComputerProduct {
    @Override
    public void start() {
        System.out.println("开启A电脑");
    }

    @Override
    public void shutdown() {
        System.out.println("关闭A电脑");
    }
}

//B电脑
public class BComputer implements IComputerProduct {
    @Override
    public void start() {
        System.out.println("开启B电脑");
    }

    @Override
    public void shutdown() {
        System.out.println("关闭B电脑");
    }
}
接口ITVProduct
//电视机产品接口
public interface ITVProduct {
    void start();

    void shutdown();
}
子类ATV和BTV
//A电视
public class ATV implements ITVProduct {
    @Override
    public void start() {
        System.out.println("开启A电视");
    }

    @Override
    public void shutdown() {
        System.out.println("关闭A电视");
    }
}

//B电视
public class BTV implements ITVProduct {
    @Override
    public void start() {
        System.out.println("开启B电视");
    }

    @Override
    public void shutdown() {
        System.out.println("关闭B电视");
    }
}
接口IProductFactory
//抽象产品工厂
public interface IProductFactory {
    //生产电脑
    IComputerProduct iComputerProduct();

    //生产电视
    ITVProduct itvProduct();
}
子类AFactory和BFactory
public class AFactory implements IProductFactory {
    @Override
    public IComputerProduct iComputerProduct() {
        return new AComputer();
    }

    @Override
    public ITVProduct itvProduct() {
        return new ATV();
    }
}

public class BFactory implements IProductFactory {
    @Override
    public IComputerProduct iComputerProduct() {
        return new BComputer();
    }

    @Override
    public ITVProduct itvProduct() {
        return new BTV();
    }
}
测试类
public class Test {
    public static void main(String[] args) {
        AFactory aFactory = new AFactory();//A工厂
        IComputerProduct iComputerProduct = aFactory.iComputerProduct();//A工厂电脑产品
        iComputerProduct.start();
        iComputerProduct.shutdown();

        ITVProduct itvProduct = aFactory.itvProduct();//A工厂电视产品
        itvProduct.start();
        itvProduct.shutdown();

        BFactory bFactory = new BFactory();//B工厂
        iComputerProduct = bFactory.iComputerProduct();//B工厂电脑产品
        iComputerProduct.start();
        iComputerProduct.shutdown();

        itvProduct = bFactory.itvProduct();//B工厂电视产品
        itvProduct.start();
        itvProduct.shutdown();
        /**
         * 输出结果:
         * 开启A电脑
         * 关闭A电脑
         * 开启A电视
         * 关闭A电视
         * 开启B电脑
         * 关闭B电脑
         * 开启B电视
         * 关闭B电视
         */
    }
}
测试结果
开启A电脑
关闭A电脑
开启A电视
关闭A电视
开启B电脑
关闭B电脑
开启B电视
关闭B电视

相关文章

  • Java与模式

    《JAVA与模式》之简单工厂模式《JAVA与模式》之工厂方法模式《JAVA与模式》之抽象工厂模式

  • 设计模式系列-抽象工厂模式

    JAVA设计模式系列: 单例模式 观察者模式 模板方法模式 简单工厂模式 抽象工厂模式 抽象工厂模式 定义 抽象工...

  • Java设计模式教程

    Java设计模式教程 Java工厂设计模式 Java抽象工厂模式 Java单例模式 Java建造者(Builder...

  • 代码段简单学习设计模式 -- 抽象工厂模式

    《JAVA与模式》之抽象工厂模式 大话设计模式 抽象工厂模式(Abstraci Factory): 提供一个创...

  • Java设计模式系列-抽象工厂模式

    原创文章,转载请标注出处:《Java设计模式系列-抽象工厂模式》 一、概述 抽象工厂模式是对工厂方法模式的再升级,...

  • java设计模式

    一、《JAVA与模式》之工厂方法模式 二、《JAVA与模式》之抽象工厂模式 三、《JAVA与模式》之单例模式 四、...

  • 设计模式:创造型

    工厂方法 抽象工厂 单例 构建者模式:Android中的Dialog.builder 原型模式:java中的clo...

  • 工厂模式(Factory Pattern)

    概述 工厂模式(Factory Pattern)包括简单工厂模式、工厂方法模式和抽象工厂模式,是 Java 中最常...

  • Java常用设计模式

    前言: 在Java中,传说有23中模式,总共分为三大类,分别是: 创建型模式(5种):工厂方法模式、抽象工厂模式、...

  • 设计模式[3]-抽象工厂模式-Abstract Factory

    1.抽象工厂模式介绍 抽象工厂模式是创建型设计模式,可以创建一组对象。与工厂方法模式相比,抽象工厂模式中的具体工厂...

网友评论

    本文标题:Java中的抽象工厂模式

    本文链接:https://www.haomeiwen.com/subject/jdtyqrtx.html