Java23种设计模式(二)抽象工厂模式

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yangshuaionline/article/details/85794185

Java23种设计模式

前面工厂方法模式中碰到的问题就是,当类似产品过多的时候,会创造很多实现工厂,造成使用的繁琐。引出本文的抽象工厂模式。

定义:允许使用抽象的接口来创建一系列相互关联或相互依赖的产品族,而不需要知道实际生产出的具体产品是什么。

直接看例子:

需求:M工厂是一家手机厂家,现在要求拓展业务,厂家同时生产笔记本。

1.创建产品接口Product,功能:made。

public interface Product {
    void made();
}

2.创建抽象工厂接口Factory,功能:madeComputer、madePhone。

public interface Factory {
    Product madePhone();
    Product madeComputer();
}

3.创建具体产品实例:PhoneProduct、ComputerProduct。

public class PhoneProduct implements Product{
    @Override
    public void made() {
        Log.w("打印","非常容易创造一款手机");
    }
}
public class ComputerProduct implements Product{
    @Override
    public void made() {
        Log.w("打印","费劲吧啦创造一台电脑");
    }
}

4.创造M工厂

public class MFactory implements Factory{
    @Override
    public Product madePhone() {
        return new PhoneProduct();
    }

    @Override
    public Product madeComputer() {
        return new ComputerProduct();
    }
}

5.客户下单:

MFactory mFactory = new MFactory();
Product computer = mFactory.madeComputer();
Product phone = mFactory.madePhone();
computer.made();
phone.made();

打印:

2019-01-07 11:12:18.212 21180-21180/fun.bingo.rxapplication W/打印: 费劲吧啦创造一台电脑
2019-01-07 11:12:18.212 21180-21180/fun.bingo.rxapplication W/打印: 非常容易创造一款手机

与工厂方法模式的最主要区别就是:工厂方法模式一个工厂生产一种产品,而抽象工厂模式一个工厂可以生产多种产品。

猜你喜欢

转载自blog.csdn.net/yangshuaionline/article/details/85794185