设计模式 - 创建型 - 抽象工厂模式学习

现象:
设计模式-创建型设计模式-抽象工厂模式学习

实现:
抽象工厂模式是工厂方法模式的升级版本,工厂方法模式只生产一个等级的产品,而抽象工厂模式可生产多个等级的产品。

方法:
一:创建抽象产品,详细产品A和详细产品B都继承抽象产品

  // 抽象产品
    interface Product {
        void show();
    }
    //详细产品A
    static class ProductA implements Product {
        @Override
        public void show() {
            System.out.println("产品A");
        }
    }
    // 详细产品B
    static class ProductB implements Product {
        @Override
        public void show() {
            System.out.println("产品B");
        }
    }

二:抽象工厂:提供了产品的生成方法。
一个工厂可以生产多个产品


public class ProductFactory implements AbstractFactory{

    @Override
    public ProductA newProductA() {
        System.out.println("工厂1->生产产品A");
        return new ProductA();
    }

    @Override
    public ProductB newProductB() {
        System.out.println("工厂1->生产产品B");
        return new ProductB();
    }
}

三:根据名称生成具体的工厂

    // 根据名称生成具体的工厂
    public static Object getFactory(String cName) {
        try {
            Class<?> c = Class.forName(cName);
            Object obj = c.newInstance();
            return obj;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

四:调用生成工厂的方法来生成工厂然后使用工厂生成产品

   ProductFactory factory = (ProductFactory) BuildFactory.getFactory("com.example.demo.ProductFactory");
        System.out.println("工厂1对象:"+factory);

        //使用工厂1生成产品A
        Product productA = factory.newProductA();
        productA.show();

        //使用工厂1生成产品B
        Product productB = factory.newProductB();
        productB.show();

结果:
工厂1对象:com.example.demo.ProductFactory@2a84aee7
工厂1->生产产品A
产品A
工厂1->生产产品B
产品B
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值